Program: 64518
Project: 64518
Buggy source:
/** 
 * @param args Command line arguments.
 * @throws SecurityException Invoking command: java org.uma.jmetal.runner.multiobjective.NSGAIIMeasuresRunner problemName [referenceFront]
 */
public static void main(String[] args) throws JMetalException, InterruptedException, FileNotFoundException {
  DoubleProblem problem;
  Algorithm<List<DoubleSolution>> algorithm;
  MutationOperator<DoubleSolution> mutation;
  String referenceParetoFront="String_Node_Str";
  String problemName;
  if (args.length == 1) {
    problemName=args[0];
  }
 else   if (args.length == 2) {
    problemName=args[0];
    referenceParetoFront=args[1];
  }
 else {
    problemName="String_Node_Str";
    referenceParetoFront="String_Node_Str";
  }
  problem=(DoubleProblem)ProblemUtils.<DoubleSolution>loadProblem(problemName);
  BoundedArchive<DoubleSolution> archive=new CrowdingDistanceArchive<DoubleSolution>(100);
  double mutationProbability=1.0 / problem.getNumberOfVariables();
  double mutationDistributionIndex=20.0;
  mutation=new PolynomialMutation(mutationProbability,mutationDistributionIndex);
  int maxIterations=250;
  int swarmSize=100;
  algorithm=new SMPSOBuilder(problem,archive).setMutation(mutation).setMaxIterations(maxIterations).setSwarmSize(swarmSize).setRandomGenerator(new MersenneTwisterGenerator()).setSolutionListEvaluator(new SequentialSolutionListEvaluator<DoubleSolution>()).setVariant(SMPSOBuilder.SMPSOVariant.Measures).build();
  MeasureManager measureManager=((SMPSOMeasures)algorithm).getMeasureManager();
  CountingMeasure currentIteration=(CountingMeasure)measureManager.<Long>getPullMeasure("String_Node_Str");
  DurationMeasure currentComputingTime=(DurationMeasure)measureManager.<Long>getPullMeasure("String_Node_Str");
  BasicMeasure<List<DoubleSolution>> solutionListMeasure=(BasicMeasure<List<DoubleSolution>>)measureManager.<List<DoubleSolution>>getPushMeasure("String_Node_Str");
  CountingMeasure iteration2=(CountingMeasure)measureManager.<Long>getPushMeasure("String_Node_Str");
  solutionListMeasure.register(new Listener());
  iteration2.register(new Listener2());
  Thread algorithmThread=new Thread(algorithm);
  algorithmThread.start();
  int i=0;
  while (currentIteration.get() < maxIterations) {
    TimeUnit.SECONDS.sleep(5);
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ currentIteration.get());
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ currentComputingTime.get());
    i++;
  }
  algorithmThread.join();
  List<DoubleSolution> population=algorithm.getResult();
  long computingTime=currentComputingTime.get();
  JMetalLogger.logger.info("String_Node_Str" + computingTime + "String_Node_Str");
  printFinalSolutionSet(population);
  if (!referenceParetoFront.equals("String_Node_Str")) {
    printQualityIndicators(population,referenceParetoFront);
  }
}

Fixed version (ground truth):
/** 
 * @param args Command line arguments.
 * @throws SecurityException Invoking command: java org.uma.jmetal.runner.multiobjective.NSGAIIMeasuresRunner problemName [referenceFront]
 */
public static void main(String[] args) throws JMetalException, InterruptedException, FileNotFoundException {
  DoubleProblem problem;
  Algorithm<List<DoubleSolution>> algorithm;
  MutationOperator<DoubleSolution> mutation;
  String referenceParetoFront="String_Node_Str";
  String problemName;
  if (args.length == 1) {
    problemName=args[0];
  }
 else   if (args.length == 2) {
    problemName=args[0];
    referenceParetoFront=args[1];
  }
 else {
    problemName="String_Node_Str";
    referenceParetoFront="String_Node_Str";
  }
  problem=(DoubleProblem)ProblemUtils.<DoubleSolution>loadProblem(problemName);
  BoundedArchive<DoubleSolution> archive=new CrowdingDistanceArchive<DoubleSolution>(100);
  double mutationProbability=1.0 / problem.getNumberOfVariables();
  double mutationDistributionIndex=20.0;
  mutation=new PolynomialMutation(mutationProbability,mutationDistributionIndex);
  int maxIterations=250;
  int swarmSize=100;
  algorithm=new SMPSOBuilder(problem,archive).setMutation(mutation).setMaxIterations(maxIterations).setSwarmSize(swarmSize).setRandomGenerator(new MersenneTwisterGenerator()).setSolutionListEvaluator(new SequentialSolutionListEvaluator<DoubleSolution>()).setVariant(SMPSOBuilder.SMPSOVariant.Measures).build();
  MeasureManager measureManager=((SMPSOMeasures)algorithm).getMeasureManager();
  CountingMeasure currentIteration=(CountingMeasure)measureManager.<Long>getPullMeasure("String_Node_Str");
  DurationMeasure currentComputingTime=(DurationMeasure)measureManager.<Long>getPullMeasure("String_Node_Str");
  BasicMeasure<List<DoubleSolution>> solutionListMeasure=(BasicMeasure<List<DoubleSolution>>)measureManager.<List<DoubleSolution>>getPushMeasure("String_Node_Str");
  CountingMeasure iteration2=(CountingMeasure)measureManager.<Long>getPushMeasure("String_Node_Str");
  solutionListMeasure.register(new Listener());
  iteration2.register(new Listener2());
  Thread algorithmThread=new Thread(algorithm);
  algorithmThread.start();
  int i=0;
  while (currentIteration.get() < maxIterations) {
    TimeUnit.SECONDS.sleep(1);
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ currentIteration.get());
    System.out.println("String_Node_Str" + i + "String_Node_Str"+ currentComputingTime.get());
    i++;
  }
  algorithmThread.join();
  List<DoubleSolution> population=algorithm.getResult();
  long computingTime=currentComputingTime.get();
  JMetalLogger.logger.info("String_Node_Str" + computingTime + "String_Node_Str");
  printFinalSolutionSet(population);
  if (!referenceParetoFront.equals("String_Node_Str")) {
    printQualityIndicators(population,referenceParetoFront);
  }
}