Program: 10232
Project: 10232
Buggy source:
private void computeM(NamedClass nc){
  long mComputationTimeStartNs=System.nanoTime();
  mA.put(nc,new TreeMap<Integer,SortedSet<Description>>());
  for (int i=1; i <= mMaxLength; i++) {
    mA.get(nc).put(i,new TreeSet<Description>(conceptComparator));
  }
  SortedSet<Description> m1=rs.getMoreSpecialConcepts(nc);
  mA.get(nc).put(1,m1);
  SortedSet<Description> m2=new TreeSet<Description>(conceptComparator);
  if (useNegation) {
    SortedSet<Description> m2tmp=rs.getMoreGeneralConcepts(new Nothing());
    for (    Description c : m2tmp) {
      if (c instanceof Thing)       m2.add(c);
 else {
        NamedClass a=(NamedClass)c;
        if (!isNotADisjoint(a,nc) && isNotAMeaningful(a,nc))         m2.add(new Negation(a));
      }
    }
  }
  computeMg(nc);
  if (useBooleanDatatypes) {
    Set<DatatypeProperty> booleanDPs=mgbd.get(nc);
    for (    DatatypeProperty dp : booleanDPs) {
      m2.add(new BooleanValueRestriction(dp,true));
      m2.add(new BooleanValueRestriction(dp,false));
    }
  }
  mA.get(nc).put(2,m2);
  SortedSet<Description> m3=new TreeSet<Description>(conceptComparator);
  if (useExistsConstructor) {
    for (    ObjectProperty r : mgr.get(nc)) {
      m3.add(new ObjectSomeRestriction(r,new Thing()));
    }
  }
  if (useAllConstructor) {
    for (    ObjectProperty r : mgr.get(nc)) {
      m3.add(new ObjectAllRestriction(r,new Thing()));
    }
  }
  if (useDoubleDatatypes) {
    Set<DatatypeProperty> doubleDPs=mgdd.get(nc);
    for (    DatatypeProperty dp : doubleDPs) {
      DoubleMaxValue max=new DoubleMaxValue(splits.get(dp).get(splits.get(dp).size() - 1));
      DoubleMinValue min=new DoubleMinValue(splits.get(dp).get(0));
      m3.add(new DatatypeSomeRestriction(dp,max));
      m3.add(new DatatypeSomeRestriction(dp,min));
    }
  }
  mA.get(nc).put(3,m3);
  mComputationTimeNs+=System.nanoTime() - mComputationTimeStartNs;
}

Fixed version (ground truth):
private void computeM(NamedClass nc){
  long mComputationTimeStartNs=System.nanoTime();
  mA.put(nc,new TreeMap<Integer,SortedSet<Description>>());
  for (int i=1; i <= mMaxLength; i++) {
    mA.get(nc).put(i,new TreeSet<Description>(conceptComparator));
  }
  SortedSet<Description> m1=rs.getMoreSpecialConcepts(nc);
  mA.get(nc).put(1,m1);
  SortedSet<Description> m2=new TreeSet<Description>(conceptComparator);
  if (useNegation) {
    SortedSet<Description> m2tmp=rs.getMoreGeneralConcepts(new Nothing());
    for (    Description c : m2tmp) {
      if (c instanceof Thing)       m2.add(c);
 else {
        NamedClass a=(NamedClass)c;
        if (!isNotADisjoint(a,nc) && isNotAMeaningful(a,nc))         m2.add(new Negation(a));
      }
    }
  }
  computeMg(nc);
  if (useBooleanDatatypes) {
    Set<DatatypeProperty> booleanDPs=mgbd.get(nc);
    for (    DatatypeProperty dp : booleanDPs) {
      m2.add(new BooleanValueRestriction(dp,true));
      m2.add(new BooleanValueRestriction(dp,false));
    }
  }
  mA.get(nc).put(2,m2);
  SortedSet<Description> m3=new TreeSet<Description>(conceptComparator);
  if (useExistsConstructor) {
    for (    ObjectProperty r : mgr.get(nc)) {
      m3.add(new ObjectSomeRestriction(r,new Thing()));
    }
  }
  if (useAllConstructor) {
    for (    ObjectProperty r : mgr.get(nc)) {
      m3.add(new ObjectAllRestriction(r,new Thing()));
    }
  }
  if (useDoubleDatatypes) {
    Set<DatatypeProperty> doubleDPs=mgdd.get(nc);
    for (    DatatypeProperty dp : doubleDPs) {
      DoubleMaxValue max=new DoubleMaxValue(splits.get(dp).get(splits.get(dp).size() - 1));
      DoubleMinValue min=new DoubleMinValue(splits.get(dp).get(0));
      m3.add(new DatatypeSomeRestriction(dp,max));
      m3.add(new DatatypeSomeRestriction(dp,min));
    }
  }
  mA.get(nc).put(3,m3);
  SortedSet<Description> m4=new TreeSet<Description>(conceptComparator);
  if (useCardinalityRestrictions) {
    for (    ObjectProperty r : mgr.get(nc)) {
      int maxFillers=maxNrOfFillers.get(r);
      m4.add(new ObjectMaxCardinalityRestriction(maxFillers - 1,r,new Thing()));
    }
  }
  mA.get(nc).put(4,m4);
  mComputationTimeNs+=System.nanoTime() - mComputationTimeStartNs;
}