Program: 64608
Project: 64608
Buggy source:
/** 
 * @param args Command line arguments.
 * @throws java.io.IOException
 * @throws SecurityException
 * @throws ClassNotFoundException Usage: three options - org.uma.jmetal.runner.multiobjective.NSGAIIRunner - org.uma.jmetal.runner.multiobjective.NSGAIIRunner problemName - org.uma.jmetal.runner.multiobjective.NSGAIIRunner problemName paretoFrontFile
 */
public static void main(String[] args) throws JMetalException, InterruptedException {
  DoubleProblem problem;
  Algorithm<List<DoubleSolution>> algorithm;
  CrossoverOperator<List<DoubleSolution>,List<DoubleSolution>> crossover;
  MutationOperator<DoubleSolution> mutation;
  SelectionOperator selection;
  String problemName;
  if (args.length == 1) {
    problemName=args[0];
    problem=(DoubleProblem)ProblemUtils.loadProblem(problemName);
  }
 else {
    problem=new Binh2();
  }
  double crossoverProbability=0.9;
  double crossoverDistributionIndex=20.0;
  crossover=new SBXCrossover(crossoverProbability,crossoverDistributionIndex);
  double mutationProbability=1.0 / problem.getNumberOfVariables();
  double mutationDistributionIndex=20.0;
  mutation=new PolynomialMutation(mutationProbability,mutationDistributionIndex);
  selection=new BinaryTournamentSelection(new RankingAndCrowdingDistanceComparator());
  int maxIterations=250;
  int populationSize=100;
  algorithm=new NSGAIIBuilder<DoubleSolution>(problem,crossover,mutation,NSGAIIBuilder.NSGAIIVariant.Measures).setSelectionOperator(selection).setMaxIterations(maxIterations).setPopulationSize(populationSize).build();
  MeasureManager measureManager=((NSGAIIMeasures)algorithm).getMeasureManager();
  CountingMeasure iteration=(CountingMeasure)measureManager.<Long>getPullMeasure("String_Node_Str");
  DurationMeasure currentComputingTime=(DurationMeasure)measureManager.<Long>getPullMeasure("String_Node_Str");
  BasicMeasure<Integer> nonDominatedSolutions=(BasicMeasure<Integer>)measureManager.<Integer>getPullMeasure("String_Node_Str");
  BasicMeasure<List<Solution>> solutionListMeasure=(BasicMeasure)measureManager.getPushMeasure("String_Node_Str");
  CountingMeasure iteration2=(CountingMeasure)measureManager.<Long>getPushMeasure("String_Node_Str");
  BasicMeasure<Integer> numberOfFeasibleSolutions=(BasicMeasure)measureManager.getPushMeasure("String_Node_Str");
  solutionListMeasure.register(new Listener());
  iteration2.register(new Listener2());
  numberOfFeasibleSolutions.register(new feasibleSolutionsListener());
  Thread algorithmThread=new Thread(algorithm);
  algorithmThread.start();
  int i=0;
  while (iteration.get() < maxIterations) {
    TimeUnit.SECONDS.sleep(5);
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ iteration.get());
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ currentComputingTime.get());
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ nonDominatedSolutions.get());
    i++;
  }
  algorithmThread.join();
  List<DoubleSolution> population=algorithm.getResult();
  long computingTime=currentComputingTime.get();
  new SolutionSetOutput.Printer(population).setSeparator("String_Node_Str").setVarFileOutputContext(new DefaultFileOutputContext("String_Node_Str")).setFunFileOutputContext(new DefaultFileOutputContext("String_Node_Str")).print();
  JMetalLogger.logger.info("String_Node_Str" + computingTime + "String_Node_Str");
  JMetalLogger.logger.info("String_Node_Str");
  JMetalLogger.logger.info("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * @param args Command line arguments.
 * @throws java.io.IOException
 * @throws SecurityException
 * @throws ClassNotFoundException Usage: three options - org.uma.jmetal.runner.multiobjective.NSGAIIRunner - org.uma.jmetal.runner.multiobjective.NSGAIIRunner problemName - org.uma.jmetal.runner.multiobjective.NSGAIIRunner problemName paretoFrontFile
 */
public static void main(String[] args) throws JMetalException, InterruptedException {
  DoubleProblem problem;
  Algorithm<List<DoubleSolution>> algorithm;
  CrossoverOperator<List<DoubleSolution>,List<DoubleSolution>> crossover;
  MutationOperator<DoubleSolution> mutation;
  SelectionOperator selection;
  String problemName;
  if (args.length == 1) {
    problemName=args[0];
    problem=(DoubleProblem)ProblemUtils.loadProblem(problemName);
  }
 else {
    problem=new Golinski();
  }
  double crossoverProbability=0.9;
  double crossoverDistributionIndex=20.0;
  crossover=new SBXCrossover(crossoverProbability,crossoverDistributionIndex);
  double mutationProbability=1.0 / problem.getNumberOfVariables();
  double mutationDistributionIndex=20.0;
  mutation=new PolynomialMutation(mutationProbability,mutationDistributionIndex);
  selection=new BinaryTournamentSelection(new RankingAndCrowdingDistanceComparator());
  int maxIterations=250;
  int populationSize=100;
  algorithm=new NSGAIIBuilder<DoubleSolution>(problem,crossover,mutation,NSGAIIBuilder.NSGAIIVariant.Measures).setSelectionOperator(selection).setMaxIterations(maxIterations).setPopulationSize(populationSize).build();
  MeasureManager measureManager=((NSGAIIMeasures)algorithm).getMeasureManager();
  CountingMeasure iteration=(CountingMeasure)measureManager.<Long>getPullMeasure("String_Node_Str");
  DurationMeasure currentComputingTime=(DurationMeasure)measureManager.<Long>getPullMeasure("String_Node_Str");
  BasicMeasure<Integer> nonDominatedSolutions=(BasicMeasure<Integer>)measureManager.<Integer>getPullMeasure("String_Node_Str");
  BasicMeasure<List<Solution>> solutionListMeasure=(BasicMeasure)measureManager.getPushMeasure("String_Node_Str");
  CountingMeasure iteration2=(CountingMeasure)measureManager.<Long>getPushMeasure("String_Node_Str");
  BasicMeasure<Integer> numberOfFeasibleSolutions=(BasicMeasure)measureManager.getPushMeasure("String_Node_Str");
  solutionListMeasure.register(new Listener());
  iteration2.register(new Listener2());
  numberOfFeasibleSolutions.register(new feasibleSolutionsListener());
  Thread algorithmThread=new Thread(algorithm);
  algorithmThread.start();
  int i=0;
  while (iteration.get() < maxIterations) {
    TimeUnit.SECONDS.sleep(5);
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ iteration.get());
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ currentComputingTime.get());
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ nonDominatedSolutions.get());
    i++;
  }
  algorithmThread.join();
  List<DoubleSolution> population=algorithm.getResult();
  long computingTime=currentComputingTime.get();
  new SolutionSetOutput.Printer(population).setSeparator("String_Node_Str").setVarFileOutputContext(new DefaultFileOutputContext("String_Node_Str")).setFunFileOutputContext(new DefaultFileOutputContext("String_Node_Str")).print();
  JMetalLogger.logger.info("String_Node_Str" + computingTime + "String_Node_Str");
  JMetalLogger.logger.info("String_Node_Str");
  JMetalLogger.logger.info("String_Node_Str");
}