Program: 61451
Project: 61451
Buggy source:
@Override public void startEvolution() throws Exception {
  dateInitEvolution=new Date();
  generationsExecuted=1;
  int maxMinutes=ConfigurationProperties.getPropertyInt("String_Node_Str");
  int v=0;
  for (  ProgramVariant parentVariant : variants) {
    log.debug("String_Node_Str" + (++v) + "String_Node_Str"+ variants.size());
    for (    ModificationPoint modifPoint : parentVariant.getModificationPoints()) {
      List<OperatorInstance> operatorInstances=createInstancesOfOperators((SuspiciousModificationPoint)modifPoint);
      if (operatorInstances == null || operatorInstances.isEmpty())       continue;
      for (      OperatorInstance pointOperation : operatorInstances) {
        try {
          log.info("String_Node_Str" + modifPoint);
          log.info("String_Node_Str" + pointOperation);
        }
 catch (        Exception e) {
          log.error(e);
        }
        ProgramVariant solutionVariant=variantFactory.createProgramVariantFromAnother(parentVariant,generationsExecuted);
        solutionVariant.getOperations().put(generationsExecuted,Arrays.asList(pointOperation));
        applyNewMutationOperationToSpoonElement(pointOperation);
        boolean solution=processCreatedVariant(solutionVariant,generationsExecuted);
        if (solution) {
          this.solutions.add(solutionVariant);
          if (ConfigurationProperties.getPropertyBool("String_Node_Str"))           return;
        }
        undoOperationToSpoonElement(pointOperation);
        if (!belowMaxTime(dateInitEvolution,maxMinutes)) {
          log.debug("String_Node_Str");
          return;
        }
      }
    }
  }
}

Fixed version (ground truth):
@Override public void startEvolution() throws Exception {
  dateInitEvolution=new Date();
  generationsExecuted=1;
  int maxMinutes=ConfigurationProperties.getPropertyInt("String_Node_Str");
  int v=0;
  for (  ProgramVariant parentVariant : variants) {
    log.debug("String_Node_Str" + (++v) + "String_Node_Str"+ variants.size());
    for (    ModificationPoint modifPoint : parentVariant.getModificationPoints()) {
      List<OperatorInstance> operatorInstances=createInstancesOfOperators((SuspiciousModificationPoint)modifPoint);
      if (operatorInstances == null || operatorInstances.isEmpty())       continue;
      for (      OperatorInstance pointOperation : operatorInstances) {
        try {
          log.info("String_Node_Str" + modifPoint);
          log.info("String_Node_Str" + pointOperation);
        }
 catch (        Exception e) {
          log.error(e);
        }
        ProgramVariant solutionVariant=variantFactory.createProgramVariantFromAnother(parentVariant,generationsExecuted);
        solutionVariant.getOperations().put(generationsExecuted,Arrays.asList(pointOperation));
        applyNewMutationOperationToSpoonElement(pointOperation);
        boolean solution=processCreatedVariant(solutionVariant,generationsExecuted);
        undoOperationToSpoonElement(pointOperation);
        if (solution) {
          this.solutions.add(solutionVariant);
          if (ConfigurationProperties.getPropertyBool("String_Node_Str"))           return;
        }
        if (!belowMaxTime(dateInitEvolution,maxMinutes)) {
          log.debug("String_Node_Str");
          return;
        }
      }
    }
  }
}