Program: 61478
Project: 61478
Buggy source:
/** 
 * It receives a suspicious code (a line) and it create a list of Gens from than suspicious line when it's possible.
 * @param suspiciousCode
 * @param progInstance
 * @return
 */
private List<SuspiciousModificationPoint> createModificationPoints(SuspiciousCode suspiciousCode,ProgramVariant progInstance){
  List<SuspiciousModificationPoint> suspGen=new ArrayList<SuspiciousModificationPoint>();
  CtClass ctclasspointed=resolveCtClass(suspiciousCode.getClassName(),progInstance);
  if (ctclasspointed == null) {
    log.info("String_Node_Str" + suspiciousCode);
    return null;
  }
  List<CtElement> ctSuspects=null;
  try {
    ctSuspects=retrieveCtElementForSuspectCode(suspiciousCode,ctclasspointed);
    Collections.reverse(ctSuspects);
  }
 catch (  Exception e) {
    e.printStackTrace();
    return null;
  }
  if (ctSuspects.isEmpty()) {
    return null;
  }
  List<CtVariable> contextOfPoint=null;
  contextOfPoint=VariableResolver.searchVariablesInScope(ctSuspects.get(0));
  List<CtElement> filterByType=extractChildElements(ctSuspects,processors);
  List<CtElement> filteredTypeByLine=intersection(filterByType,ctSuspects);
  int id=0;
  for (  CtElement ctElement : filteredTypeByLine) {
    SuspiciousModificationPoint modifPoint=new SuspiciousModificationPoint();
    modifPoint.setSuspicious(suspiciousCode);
    modifPoint.setClonedClass(ctclasspointed);
    modifPoint.setCodeElement(ctElement);
    modifPoint.setContextOfModificationPoint(contextOfPoint);
    suspGen.add(modifPoint);
    log.debug("String_Node_Str" + ctElement.getClass().getSimpleName() + "String_Node_Str"+ suspiciousCode.getSuspiciousValue()+ "String_Node_Str"+ ctElement.getPosition().getLine()+ "String_Node_Str"+ ctElement.getPosition().getFile().getName());
  }
  return suspGen;
}

Fixed version (ground truth):
/** 
 * It receives a suspicious code (a line) and it create a list of Gens from than suspicious line when it's possible.
 * @param suspiciousCode
 * @param progInstance
 * @return
 */
private List<SuspiciousModificationPoint> createModificationPoints(SuspiciousCode suspiciousCode,ProgramVariant progInstance){
  List<SuspiciousModificationPoint> suspGen=new ArrayList<SuspiciousModificationPoint>();
  CtClass ctclasspointed=resolveCtClass(suspiciousCode.getClassName(),progInstance);
  if (ctclasspointed == null) {
    log.info("String_Node_Str" + suspiciousCode);
    return null;
  }
  List<CtElement> ctSuspects=null;
  try {
    ctSuspects=retrieveCtElementForSuspectCode(suspiciousCode,ctclasspointed);
    Collections.reverse(ctSuspects);
  }
 catch (  Exception e) {
    e.printStackTrace();
    return null;
  }
  if (ctSuspects.isEmpty()) {
    return null;
  }
  List<CtVariable> contextOfPoint=null;
  contextOfPoint=VariableResolver.searchVariablesInScope(ctSuspects.get(0));
  List<CtElement> filterByType=extractChildElements(ctSuspects,processors);
  List<CtElement> filteredTypeByLine=intersection(filterByType,ctSuspects);
  int id=0;
  for (  CtElement ctElement : filteredTypeByLine) {
    SuspiciousModificationPoint modifPoint=new SuspiciousModificationPoint();
    modifPoint.setSuspicious(suspiciousCode);
    modifPoint.setClonedClass(ctclasspointed);
    modifPoint.setCodeElement(ctElement);
    modifPoint.setContextOfModificationPoint(contextOfPoint);
    suspGen.add(modifPoint);
    log.debug("String_Node_Str" + ctElement.getClass().getSimpleName() + "String_Node_Str"+ suspiciousCode.getSuspiciousValue()+ "String_Node_Str"+ ctElement.getPosition().getLine()+ "String_Node_Str"+ ((ctElement.getPosition().getFile() == null) ? "String_Node_Str" : ctElement.getPosition().getFile().getName()));
  }
  return suspGen;
}