Program: 64489
Project: 64489
Buggy source:
/** 
 * @param args Command line arguments.
 * @throws JMetalException
 * @throws FileNotFoundException Invoking command: java org.uma.jmetal.runner.multiobjective.RNSGAIIRunner problemName [referenceFront]
 */
public static void main(String[] args) throws JMetalException, FileNotFoundException {
  Problem<DoubleSolution> problem;
  Algorithm<List<DoubleSolution>> algorithm;
  CrossoverOperator<DoubleSolution> crossover;
  MutationOperator<DoubleSolution> mutation;
  SelectionOperator<List<DoubleSolution>,DoubleSolution> selection;
  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=ProblemUtils.<DoubleSolution>loadProblem(problemName);
  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<DoubleSolution>(new RankingAndCrowdingDistanceComparator<DoubleSolution>());
  List<Double> referencePoint=new ArrayList<>();
  referencePoint.add(0.1);
  referencePoint.add(0.6);
  referencePoint.add(0.3);
  referencePoint.add(0.6);
  referencePoint.add(0.5);
  referencePoint.add(0.2);
  referencePoint.add(0.7);
  referencePoint.add(0.2);
  referencePoint.add(0.9);
  referencePoint.add(0.0);
  double epsilon=0.001;
  algorithm=new RNSGAIIBuilder<DoubleSolution>(problem,crossover,mutation,referencePoint,epsilon).setSelectionOperator(selection).setMaxEvaluations(25000).setPopulationSize(100).build();
  AlgorithmRunner algorithmRunner=new AlgorithmRunner.Executor(algorithm).execute();
  List<DoubleSolution> population=algorithm.getResult();
  long computingTime=algorithmRunner.getComputingTime();
  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 JMetalException
 * @throws FileNotFoundException Invoking command: java org.uma.jmetal.runner.multiobjective.RNSGAIIRunner problemName [referenceFront]
 */
public static void main(String[] args) throws JMetalException, FileNotFoundException {
  Problem<DoubleSolution> problem;
  Algorithm<List<DoubleSolution>> algorithm;
  CrossoverOperator<DoubleSolution> crossover;
  MutationOperator<DoubleSolution> mutation;
  SelectionOperator<List<DoubleSolution>,DoubleSolution> selection;
  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=new Tanaka();
  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<DoubleSolution>(new RankingAndCrowdingDistanceComparator<DoubleSolution>());
  List<Double> referencePoint=new ArrayList<>();
  referencePoint.add(0.3);
  referencePoint.add(0.6);
  double epsilon=0.001;
  algorithm=new RNSGAIIBuilder<DoubleSolution>(problem,crossover,mutation,referencePoint,epsilon).setSelectionOperator(selection).setMaxEvaluations(25000).setPopulationSize(100).build();
  AlgorithmRunner algorithmRunner=new AlgorithmRunner.Executor(algorithm).execute();
  List<DoubleSolution> population=algorithm.getResult();
  long computingTime=algorithmRunner.getComputingTime();
  JMetalLogger.logger.info("String_Node_Str" + computingTime + "String_Node_Str");
  printFinalSolutionSet(population);
  if (!referenceParetoFront.equals("String_Node_Str")) {
    printQualityIndicators(population,referenceParetoFront);
  }
}