Program: 9758
Project: 9758
Buggy source:
private boolean addNode(Description description,OENode parentNode){
  boolean nonRedundant=descriptions.add(description);
  if (!nonRedundant) {
    return false;
  }
  if (!isDescriptionAllowed(description,parentNode)) {
    return false;
  }
  double accuracy=learningProblem.getAccuracyOrTooWeak(description,noise);
  if (accuracy > 1.0 || (accuracy < 0.0 && accuracy != -1)) {
    logger.warn("String_Node_Str" + accuracy + "String_Node_Str"+ description+ "String_Node_Str");
    System.exit(0);
  }
  expressionTests++;
  if (accuracy == -1) {
    return false;
  }
  OENode node=new OENode(parentNode,description,accuracy);
  if (parentNode == null) {
    startNode=node;
  }
 else {
    parentNode.addChild(node);
  }
  nodes.add(node);
  if (singleSuggestionMode) {
    if (accuracy > bestAccuracy) {
      bestAccuracy=accuracy;
      bestDescription=description;
      logger.info("String_Node_Str" + dfPercent.format(bestAccuracy) + "String_Node_Str"+ descriptionToString(bestDescription));
    }
    return true;
  }
  boolean isCandidate=!bestEvaluatedDescriptions.isFull();
  if (!isCandidate) {
    EvaluatedDescription worst=bestEvaluatedDescriptions.getWorst();
    double accThreshold=worst.getAccuracy();
    isCandidate=(accuracy > accThreshold || (accuracy >= accThreshold && description.getLength() < worst.getDescriptionLength()));
  }
  if (isCandidate) {
    Description niceDescription=rewriteNode(node);
    ConceptTransformation.transformToOrderedForm(niceDescription,descriptionComparator);
    boolean shorterDescriptionExists=false;
    for (    EvaluatedDescription ed : bestEvaluatedDescriptions.getSet()) {
      if (Math.abs(ed.getAccuracy() - accuracy) <= 0.00001 && ConceptTransformation.isSubdescription(niceDescription,ed.getDescription())) {
        shorterDescriptionExists=true;
        break;
      }
    }
    if (!shorterDescriptionExists) {
      if (!filterFollowsFromKB || !((ClassLearningProblem)learningProblem).followsFromKB(niceDescription)) {
        bestEvaluatedDescriptions.add(niceDescription,accuracy,learningProblem);
      }
    }
  }
  return true;
}

Fixed version (ground truth):
private boolean addNode(Description description,OENode parentNode){
  boolean nonRedundant=descriptions.add(description);
  if (!nonRedundant) {
    return false;
  }
  if (!isDescriptionAllowed(description,parentNode)) {
    return false;
  }
  double accuracy=learningProblem.getAccuracyOrTooWeak(description,noise);
  if (accuracy > 1.0 || (accuracy < 0.0 && accuracy != -1)) {
    logger.warn("String_Node_Str" + accuracy + "String_Node_Str"+ description+ "String_Node_Str");
    System.exit(0);
  }
  expressionTests++;
  if (accuracy == -1) {
    return false;
  }
  OENode node=new OENode(parentNode,description,accuracy);
  if (parentNode == null) {
    startNode=node;
  }
 else {
    parentNode.addChild(node);
  }
  nodes.add(node);
  if (singleSuggestionMode) {
    if (accuracy > bestAccuracy) {
      bestAccuracy=accuracy;
      bestDescription=description;
      logger.info("String_Node_Str" + dfPercent.format(bestAccuracy) + "String_Node_Str"+ descriptionToString(bestDescription));
    }
    return true;
  }
  boolean isCandidate=!bestEvaluatedDescriptions.isFull();
  if (!isCandidate) {
    EvaluatedDescription worst=bestEvaluatedDescriptions.getWorst();
    double accThreshold=worst.getAccuracy();
    isCandidate=(accuracy > accThreshold || (accuracy >= accThreshold && description.getLength() < worst.getDescriptionLength()));
  }
  if (isCandidate) {
    Description niceDescription=rewriteNode(node);
    ConceptTransformation.transformToOrderedForm(niceDescription,descriptionComparator);
    boolean shorterDescriptionExists=false;
    if (forceMutualDifference) {
      for (      EvaluatedDescription ed : bestEvaluatedDescriptions.getSet()) {
        if (Math.abs(ed.getAccuracy() - accuracy) <= 0.00001 && ConceptTransformation.isSubdescription(niceDescription,ed.getDescription())) {
          shorterDescriptionExists=true;
          break;
        }
      }
    }
    if (!shorterDescriptionExists) {
      if (!filterFollowsFromKB || !((ClassLearningProblem)learningProblem).followsFromKB(niceDescription)) {
        bestEvaluatedDescriptions.add(niceDescription,accuracy,learningProblem);
      }
    }
  }
  return true;
}