Program: 61412
Project: 61412
Buggy source:
/** 
 * A Program instances is created from the list of suspicious. For each suspiciuos a list of modif point is created.
 * @param suspiciousList
 * @param idProgramInstance
 * @return
 */
private ProgramVariant createProgramInstance(List<SuspiciousCode> suspiciousList,int idProgramInstance){
  ProgramVariant progInstance=new ProgramVariant(idProgramInstance);
  log.debug("String_Node_Str" + idProgramInstance);
  if (!suspiciousList.isEmpty()) {
    for (    SuspiciousCode suspiciousCode : suspiciousList) {
      List<SuspiciousModificationPoint> modifPoints=createModificationPoints(suspiciousCode,progInstance);
      if (modifPoints != null && !modifPoints.isEmpty()) {
        progInstance.addModificationPoints(modifPoints);
      }
    }
    log.info("String_Node_Str" + suspiciousList.size() + "String_Node_Str"+ progInstance.getModificationPoints().size());
  }
 else {
    List<SuspiciousModificationPoint> pointsFromAllStatements=createModificationPoints(progInstance);
    progInstance.getModificationPoints().addAll(pointsFromAllStatements);
  }
  log.info("String_Node_Str" + progInstance.getModificationPoints().size());
  int maxModPoints=ConfigurationProperties.getPropertyInt("String_Node_Str");
  if (progInstance.getModificationPoints().size() > maxModPoints) {
    progInstance.setModificationPoints(progInstance.getModificationPoints().subList(0,maxModPoints));
    log.info("String_Node_Str" + progInstance.getModificationPoints().size());
  }
  for (int i=0; i < progInstance.getModificationPoints().size(); i++) {
    ModificationPoint mp=progInstance.getModificationPoints().get(0);
    mp.identified=i + 1;
  }
  return progInstance;
}

Fixed version (ground truth):
/** 
 * A Program instances is created from the list of suspicious. For each suspiciuos a list of modif point is created.
 * @param suspiciousList
 * @param idProgramInstance
 * @return
 */
private ProgramVariant createProgramInstance(List<SuspiciousCode> suspiciousList,int idProgramInstance){
  ProgramVariant progInstance=new ProgramVariant(idProgramInstance);
  log.debug("String_Node_Str" + idProgramInstance);
  if (!suspiciousList.isEmpty()) {
    for (    SuspiciousCode suspiciousCode : suspiciousList) {
      List<SuspiciousModificationPoint> modifPoints=createModificationPoints(suspiciousCode,progInstance);
      if (modifPoints != null && !modifPoints.isEmpty()) {
        progInstance.addModificationPoints(modifPoints);
      }
    }
    log.info("String_Node_Str" + suspiciousList.size() + "String_Node_Str"+ progInstance.getModificationPoints().size());
  }
 else {
    List<SuspiciousModificationPoint> pointsFromAllStatements=createModificationPoints(progInstance);
    progInstance.getModificationPoints().addAll(pointsFromAllStatements);
  }
  log.info("String_Node_Str" + progInstance.getModificationPoints().size());
  int maxModPoints=ConfigurationProperties.getPropertyInt("String_Node_Str");
  if (progInstance.getModificationPoints().size() > maxModPoints) {
    progInstance.setModificationPoints(progInstance.getModificationPoints().subList(0,maxModPoints));
    log.info("String_Node_Str" + progInstance.getModificationPoints().size());
  }
  for (int i=0; i < progInstance.getModificationPoints().size(); i++) {
    ModificationPoint mp=progInstance.getModificationPoints().get(i);
    mp.identified=i;
  }
  return progInstance;
}