Program: 9420
Project: 9420
Buggy source:
@Override public void start(){
  stop=false;
  isRunning=true;
  reset();
  nanoStartTime=System.nanoTime();
  double highestAccuracy=0.0;
  OENode nextNode;
  addNode(startClass,null);
  int loop=0;
  while (!terminationCriteriaSatisfied()) {
    if (!singleSuggestionMode && bestEvaluatedDescriptions.getBestAccuracy() > highestAccuracy) {
      highestAccuracy=bestEvaluatedDescriptions.getBestAccuracy();
      expressionTestCountLastImprovement=expressionTests;
      timeLastImprovement=System.nanoTime();
      logger.info("String_Node_Str" + dfPercent.format(highestAccuracy) + "String_Node_Str"+ descriptionToString(bestEvaluatedDescriptions.getBest().getDescription()));
    }
    nextNode=getNextNodeToExpand();
    int horizExp=nextNode.getHorizontalExpansion();
    Monitor mon=MonitorFactory.start("String_Node_Str");
    TreeSet<OWLClassExpression> refinements=refineNode(nextNode);
    mon.stop();
    while (refinements.size() != 0) {
      OWLClassExpression refinement=refinements.pollFirst();
      int length=OWLClassExpressionUtils.getLength(refinement);
      if (length > horizExp && OWLClassExpressionUtils.getLength(refinement) <= maxDepth) {
        Monitor mon2=MonitorFactory.start("String_Node_Str");
        addNode(refinement,nextNode);
        mon2.stop();
        if (terminationCriteriaSatisfied()) {
          break;
        }
      }
    }
    updateMinMaxHorizExp(nextNode);
    if (writeSearchTree) {
      String treeString="String_Node_Str" + bestEvaluatedDescriptions.getBest() + "String_Node_Str";
      if (refinements.size() > 1) {
        treeString+="String_Node_Str";
        for (        OWLClassExpression n : refinements) {
          treeString+="String_Node_Str" + n + "String_Node_Str";
        }
      }
      treeString+=startNode.toTreeString(baseURI,prefixes);
      treeString+="String_Node_Str";
      if (replaceSearchTree)       Files.createFile(new File(searchTreeFile),treeString);
 else       Files.appendToFile(new File(searchTreeFile),treeString);
    }
    loop++;
  }
  if (stop) {
    logger.info("String_Node_Str" + expressionTests + "String_Node_Str"+ nodes.size()+ "String_Node_Str");
  }
 else {
    totalRuntimeNs=System.nanoTime() - nanoStartTime;
    logger.info("String_Node_Str" + Helper.prettyPrintNanoSeconds(totalRuntimeNs) + "String_Node_Str"+ expressionTests+ "String_Node_Str"+ nodes.size()+ "String_Node_Str");
    logger.info(reasoner.toString());
  }
  if (singleSuggestionMode) {
    bestEvaluatedDescriptions.add(bestDescription,bestAccuracy,learningProblem);
  }
  logger.info("String_Node_Str" + getSolutionString());
  isRunning=false;
}

Fixed version (ground truth):
@Override public void start(){
  stop=false;
  isRunning=true;
  reset();
  nanoStartTime=System.nanoTime();
  double highestAccuracy=0.0;
  OENode nextNode;
  addNode(startClass,null);
  int loop=0;
  while (!terminationCriteriaSatisfied()) {
    if (!singleSuggestionMode && bestEvaluatedDescriptions.getBestAccuracy() > highestAccuracy) {
      highestAccuracy=bestEvaluatedDescriptions.getBestAccuracy();
      expressionTestCountLastImprovement=expressionTests;
      timeLastImprovement=System.nanoTime();
      logger.info("String_Node_Str" + dfPercent.format(highestAccuracy) + "String_Node_Str"+ descriptionToString(bestEvaluatedDescriptions.getBest().getDescription()));
    }
    nextNode=getNextNodeToExpand();
    int horizExp=nextNode.getHorizontalExpansion();
    Monitor mon=MonitorFactory.start("String_Node_Str");
    System.out.println("String_Node_Str" + nextNode);
    TreeSet<OWLClassExpression> refinements=refineNode(nextNode);
    System.out.println("String_Node_Str" + refinements.size() + "String_Node_Str");
    mon.stop();
    while (refinements.size() != 0) {
      OWLClassExpression refinement=refinements.pollFirst();
      int length=OWLClassExpressionUtils.getLength(refinement);
      if (length > horizExp && OWLClassExpressionUtils.getDepth(refinement) <= maxDepth) {
        Monitor mon2=MonitorFactory.start("String_Node_Str");
        addNode(refinement,nextNode);
        mon2.stop();
        if (terminationCriteriaSatisfied()) {
          break;
        }
      }
    }
    updateMinMaxHorizExp(nextNode);
    if (writeSearchTree) {
      String treeString="String_Node_Str" + bestEvaluatedDescriptions.getBest() + "String_Node_Str";
      if (refinements.size() > 1) {
        treeString+="String_Node_Str";
        for (        OWLClassExpression n : refinements) {
          treeString+="String_Node_Str" + n + "String_Node_Str";
        }
      }
      treeString+=startNode.toTreeString(baseURI,prefixes);
      treeString+="String_Node_Str";
      if (replaceSearchTree)       Files.createFile(new File(searchTreeFile),treeString);
 else       Files.appendToFile(new File(searchTreeFile),treeString);
    }
    loop++;
  }
  if (stop) {
    logger.info("String_Node_Str" + expressionTests + "String_Node_Str"+ nodes.size()+ "String_Node_Str");
  }
 else {
    totalRuntimeNs=System.nanoTime() - nanoStartTime;
    logger.info("String_Node_Str" + Helper.prettyPrintNanoSeconds(totalRuntimeNs) + "String_Node_Str"+ expressionTests+ "String_Node_Str"+ nodes.size()+ "String_Node_Str");
    logger.info(reasoner.toString());
  }
  if (singleSuggestionMode) {
    bestEvaluatedDescriptions.add(bestDescription,bestAccuracy,learningProblem);
  }
  logger.info("String_Node_Str" + getSolutionString());
  isRunning=false;
  System.err.println(MonitorFactory.start("String_Node_Str"));
  System.err.println(MonitorFactory.start("String_Node_Str"));
}