Program: 9437
Project: 9437
Buggy source:
private void computeM(OWLClass nc){
  long mComputationTimeStartNs=System.nanoTime();
  mA.put(nc,new TreeMap<Integer,SortedSet<OWLClassExpression>>());
  for (int i=1; i <= mMaxLength; i++) {
    mA.get(nc).put(i,new TreeSet<OWLClassExpression>());
  }
  SortedSet<OWLClassExpression> m1=getClassCandidates(nc);
  mA.get(nc).put(1,m1);
  SortedSet<OWLClassExpression> m2=new TreeSet<OWLClassExpression>();
  if (useNegation) {
    m2=getNegClassCandidates(nc);
    mA.get(nc).put(2,m2);
  }
  computeMg(nc);
  if (useBooleanDatatypes) {
    Set<OWLDataProperty> booleanDPs=mgbd.get(nc);
    for (    OWLDataProperty dp : booleanDPs) {
      m2.add(df.getOWLDataHasValue(dp,df.getOWLLiteral(true)));
      m2.add(df.getOWLDataHasValue(dp,df.getOWLLiteral(false)));
    }
  }
  mA.get(nc).put(2,m2);
  SortedSet<OWLClassExpression> m3=new TreeSet<OWLClassExpression>();
  if (useExistsConstructor) {
    for (    OWLObjectProperty r : mgr.get(nc)) {
      m3.add(df.getOWLObjectSomeValuesFrom(r,df.getOWLThing()));
    }
  }
  if (useAllConstructor) {
    for (    OWLObjectProperty r : mgr.get(nc)) {
      m3.add(df.getOWLObjectAllValuesFrom(r,df.getOWLThing()));
    }
  }
  if (useNumericDatatypes) {
    Set<OWLDataProperty> numericDPs=mgNumeric.get(nc);
    for (    OWLDataProperty dp : numericDPs) {
      if (splits.get(dp).size() > 0) {
        double min=splits.get(dp).get(0);
        double max=splits.get(dp).get(splits.get(dp).size() - 1);
        m3.add(df.getOWLDataSomeValuesFrom(dp,df.getOWLDatatypeMinInclusiveRestriction(min)));
        m3.add(df.getOWLDataSomeValuesFrom(dp,df.getOWLDatatypeMaxInclusiveRestriction(max)));
      }
    }
  }
  if (useDataHasValueConstructor) {
    Set<OWLDataProperty> stringDPs=mgsd.get(nc);
    for (    OWLDataProperty dp : stringDPs) {
      Set<OWLLiteral> freqValues=frequentDataValues.get(dp);
      for (      OWLLiteral lit : freqValues) {
        m3.add(df.getOWLDataHasValue(dp,lit));
      }
    }
  }
  mA.get(nc).put(3,m3);
  SortedSet<OWLClassExpression> m4=new TreeSet<OWLClassExpression>();
  if (useCardinalityRestrictions) {
    for (    OWLObjectProperty r : mgr.get(nc)) {
      int maxFillers=maxNrOfFillers.get(r);
      if ((useNegation && maxFillers > 0) || (!useNegation && maxFillers > 1))       m4.add(df.getOWLObjectMaxCardinality(maxFillers - 1,r,df.getOWLThing()));
    }
  }
  mA.get(nc).put(4,m4);
  mComputationTimeNs+=System.nanoTime() - mComputationTimeStartNs;
}

Fixed version (ground truth):
private void computeM(OWLClassExpression nc){
  long mComputationTimeStartNs=System.nanoTime();
  mA.put(nc,new TreeMap<Integer,SortedSet<OWLClassExpression>>());
  for (int i=1; i <= mMaxLength; i++) {
    mA.get(nc).put(i,new TreeSet<OWLClassExpression>());
  }
  SortedSet<OWLClassExpression> m1=getClassCandidates(nc);
  mA.get(nc).put(1,m1);
  SortedSet<OWLClassExpression> m2=new TreeSet<OWLClassExpression>();
  if (useNegation) {
    m2=getNegClassCandidates(nc);
    mA.get(nc).put(2,m2);
  }
  computeMg(nc);
  if (useBooleanDatatypes) {
    Set<OWLDataProperty> booleanDPs=mgbd.get(nc);
    for (    OWLDataProperty dp : booleanDPs) {
      m2.add(df.getOWLDataHasValue(dp,df.getOWLLiteral(true)));
      m2.add(df.getOWLDataHasValue(dp,df.getOWLLiteral(false)));
    }
  }
  mA.get(nc).put(2,m2);
  SortedSet<OWLClassExpression> m3=new TreeSet<OWLClassExpression>();
  if (useExistsConstructor) {
    for (    OWLObjectProperty r : mgr.get(nc)) {
      m3.add(df.getOWLObjectSomeValuesFrom(r,df.getOWLThing()));
    }
  }
  if (useAllConstructor) {
    for (    OWLObjectProperty r : mgr.get(nc)) {
      m3.add(df.getOWLObjectAllValuesFrom(r,df.getOWLThing()));
    }
  }
  if (useNumericDatatypes) {
    Set<OWLDataProperty> numericDPs=mgNumeric.get(nc);
    for (    OWLDataProperty dp : numericDPs) {
      if (splits.get(dp).size() > 0) {
        double min=splits.get(dp).get(0);
        double max=splits.get(dp).get(splits.get(dp).size() - 1);
        m3.add(df.getOWLDataSomeValuesFrom(dp,df.getOWLDatatypeMinInclusiveRestriction(min)));
        m3.add(df.getOWLDataSomeValuesFrom(dp,df.getOWLDatatypeMaxInclusiveRestriction(max)));
      }
    }
  }
  if (useDataHasValueConstructor) {
    Set<OWLDataProperty> stringDPs=mgsd.get(nc);
    for (    OWLDataProperty dp : stringDPs) {
      Set<OWLLiteral> freqValues=frequentDataValues.get(dp);
      for (      OWLLiteral lit : freqValues) {
        m3.add(df.getOWLDataHasValue(dp,lit));
      }
    }
  }
  mA.get(nc).put(3,m3);
  SortedSet<OWLClassExpression> m4=new TreeSet<OWLClassExpression>();
  if (useCardinalityRestrictions) {
    for (    OWLObjectProperty r : mgr.get(nc)) {
      int maxFillers=maxNrOfFillers.get(r);
      if ((useNegation && maxFillers > 0) || (!useNegation && maxFillers > 1))       m4.add(df.getOWLObjectMaxCardinality(maxFillers - 1,r,df.getOWLThing()));
    }
  }
  mA.get(nc).put(4,m4);
  mComputationTimeNs+=System.nanoTime() - mComputationTimeStartNs;
}