Program: 61453
Project: 61453
Buggy source:
protected FaultLocalizationResult searchSuspicious(String location,List<String> testsToExecute,List<String> toInstrument,Set<String> cp,String srcFolder) throws Exception {
  List<String> failingTestCases=new ArrayList<String>();
  Double thr=ConfigurationProperties.getPropertyDouble("String_Node_Str");
  logger.info("String_Node_Str" + thr);
  File projLocationFile=new File(ConfigurationProperties.getProperty("String_Node_Str"));
  String projLocation=projLocationFile.getAbsolutePath();
  logger.debug("String_Node_Str" + projLocation + "String_Node_Str"+ projLocationFile.exists());
  GZoltar gz=new GZoltar(projLocation);
  for (  String to : toInstrument) {
    gz.addPackageToInstrument(to);
  }
  if (cp != null || !cp.isEmpty()) {
    logger.info("String_Node_Str" + cp);
    gz.getClasspaths().addAll(cp);
  }
  for (  String test : testsToExecute) {
    gz.addTestToExecute(test);
    gz.addClassNotToInstrument(test);
  }
  gz.addTestPackageNotToExecute("String_Node_Str");
  gz.addPackageNotToInstrument("String_Node_Str");
  gz.run();
  int[] sum=new int[2];
  for (  TestResult tr : gz.getTestResults()) {
    String testName=tr.getName().split("String_Node_Str")[0];
    if (testName.startsWith("String_Node_Str")) {
      continue;
    }
    sum[0]++;
    sum[1]+=tr.wasSuccessful() ? 0 : 1;
    if (!tr.wasSuccessful()) {
      logger.info("String_Node_Str" + tr.getName());
      failingTestCases.add(testName.split("String_Node_Str")[0]);
    }
  }
  int gzPositives=gz.getSuspiciousStatements().stream().filter(x -> x.getSuspiciousness() > 0).collect(Collectors.toList()).size();
  logger.info("String_Node_Str" + sum[0] + "String_Node_Str"+ sum[1]+ "String_Node_Str"+ gz.getSuspiciousStatements().size()+ "String_Node_Str"+ gzPositives);
  DecimalFormat df=new DecimalFormat("String_Node_Str");
  int maxSuspCandidates=ConfigurationProperties.getPropertyInt("String_Node_Str");
  List<Statement> gzCandidates=new ArrayList();
  for (  Statement gzoltarStatement : gz.getSuspiciousStatements()) {
    String compName=gzoltarStatement.getMethod().getParent().getLabel();
    if (isSource(compName,srcFolder) && (!ConfigurationProperties.getPropertyBool("String_Node_Str") || (gzoltarStatement.getSuspiciousness() >= thr))) {
      gzCandidates.add(gzoltarStatement);
    }
  }
  if (gzCandidates.isEmpty()) {
    gzCandidates.addAll(gz.getSuspiciousStatements());
  }
  if (!ConfigurationProperties.getPropertyBool("String_Node_Str")) {
    gzCandidates.removeIf(susp -> (susp.getSuspiciousness() == 0));
  }
  Collections.sort(gzCandidates,(o1,o2) -> Double.compare(o2.getSuspiciousness(),o1.getSuspiciousness()));
  int max=(gzCandidates.size() < maxSuspCandidates) ? gzCandidates.size() : maxSuspCandidates;
  List<SuspiciousCode> candidates=new ArrayList<SuspiciousCode>();
  for (int i=0; i < max; i++) {
    Statement gzoltarStatement=gzCandidates.get(i);
    String compName=gzoltarStatement.getMethod().getParent().getLabel();
    logger.debug("String_Node_Str" + compName + "String_Node_Str"+ gzoltarStatement.getLineNumber()+ "String_Node_Str"+ df.format(gzoltarStatement.getSuspiciousness()));
    SuspiciousCode suspcode=new SuspiciousCode(compName,gzoltarStatement.getMethod().toString(),gzoltarStatement.getLineNumber(),gzoltarStatement.getSuspiciousness(),gzoltarStatement.getCountMap());
    candidates.add(suspcode);
  }
  logger.info("String_Node_Str" + candidates.size() + "String_Node_Str"+ thr+ "String_Node_Str"+ max);
  return new FaultLocalizationResult(candidates,failingTestCases);
}

Fixed version (ground truth):
protected FaultLocalizationResult searchSuspicious(String locationBytecode,List<String> testsToExecute,List<String> toInstrument,Set<String> cp,String srcFolder) throws Exception {
  List<String> failingTestCases=new ArrayList<String>();
  Double thr=ConfigurationProperties.getPropertyDouble("String_Node_Str");
  logger.info("String_Node_Str" + thr);
  File projLocationFile=new File(locationBytecode + File.separator);
  String projLocationPath=projLocationFile.getAbsolutePath();
  logger.debug("String_Node_Str" + projLocationPath + "String_Node_Str"+ projLocationFile.exists());
  GZoltar gz=new GZoltar(projLocationPath + File.separator);
  for (  String to : toInstrument) {
    gz.addPackageToInstrument(to);
  }
  if (cp != null || !cp.isEmpty()) {
    logger.info("String_Node_Str" + cp);
    gz.getClasspaths().addAll(cp);
  }
  for (  String test : testsToExecute) {
    gz.addTestToExecute(test);
    gz.addClassNotToInstrument(test);
  }
  gz.addTestPackageNotToExecute("String_Node_Str");
  gz.addPackageNotToInstrument("String_Node_Str");
  gz.run();
  int[] sum=new int[2];
  for (  TestResult tr : gz.getTestResults()) {
    String testName=tr.getName().split("String_Node_Str")[0];
    if (testName.startsWith("String_Node_Str")) {
      continue;
    }
    sum[0]++;
    sum[1]+=tr.wasSuccessful() ? 0 : 1;
    if (!tr.wasSuccessful()) {
      logger.info("String_Node_Str" + tr.getName());
      failingTestCases.add(testName.split("String_Node_Str")[0]);
    }
  }
  int gzPositives=gz.getSuspiciousStatements().stream().filter(x -> x.getSuspiciousness() > 0).collect(Collectors.toList()).size();
  logger.info("String_Node_Str" + sum[0] + "String_Node_Str"+ sum[1]+ "String_Node_Str"+ gz.getSuspiciousStatements().size()+ "String_Node_Str"+ gzPositives);
  DecimalFormat df=new DecimalFormat("String_Node_Str");
  int maxSuspCandidates=ConfigurationProperties.getPropertyInt("String_Node_Str");
  List<Statement> gzCandidates=new ArrayList();
  for (  Statement gzoltarStatement : gz.getSuspiciousStatements()) {
    String compName=gzoltarStatement.getMethod().getParent().getLabel();
    if (isSource(compName,srcFolder) && (!ConfigurationProperties.getPropertyBool("String_Node_Str") || (gzoltarStatement.getSuspiciousness() >= thr))) {
      gzCandidates.add(gzoltarStatement);
    }
  }
  if (gzCandidates.isEmpty()) {
    gzCandidates.addAll(gz.getSuspiciousStatements());
  }
  if (!ConfigurationProperties.getPropertyBool("String_Node_Str")) {
    gzCandidates.removeIf(susp -> (susp.getSuspiciousness() == 0));
  }
  Collections.sort(gzCandidates,(o1,o2) -> Double.compare(o2.getSuspiciousness(),o1.getSuspiciousness()));
  int max=(gzCandidates.size() < maxSuspCandidates) ? gzCandidates.size() : maxSuspCandidates;
  List<SuspiciousCode> candidates=new ArrayList<SuspiciousCode>();
  for (int i=0; i < max; i++) {
    Statement gzoltarStatement=gzCandidates.get(i);
    String compName=gzoltarStatement.getMethod().getParent().getLabel();
    logger.debug("String_Node_Str" + compName + "String_Node_Str"+ gzoltarStatement.getLineNumber()+ "String_Node_Str"+ df.format(gzoltarStatement.getSuspiciousness()));
    SuspiciousCode suspcode=new SuspiciousCode(compName,gzoltarStatement.getMethod().toString(),gzoltarStatement.getLineNumber(),gzoltarStatement.getSuspiciousness(),gzoltarStatement.getCountMap());
    candidates.add(suspcode);
  }
  logger.info("String_Node_Str" + candidates.size() + "String_Node_Str"+ thr+ "String_Node_Str"+ max);
  return new FaultLocalizationResult(candidates,failingTestCases);
}