Program: 64491
Project: 64491
Buggy source:
/** 
 * The run() method creates de output directory and compute the fronts
 */
@Override public void run() throws IOException {
  String outputDirectoryName=experiment.getReferenceFrontDirectory();
  createOutputDirectory(outputDirectoryName);
  List<String> referenceFrontFileNames=new LinkedList<>();
  for (  ExperimentProblem<?> problem : experiment.getProblemList()) {
    NonDominatedSolutionListArchive<PointSolution> nonDominatedSolutionArchive=new NonDominatedSolutionListArchive<PointSolution>();
    for (    ExperimentAlgorithm<?,?> algorithm : experiment.getAlgorithmList()) {
      String problemDirectory=experiment.getExperimentBaseDirectory() + "String_Node_Str" + algorithm.getAlgorithmTag()+ "String_Node_Str"+ problem.getTag();
      for (int i=0; i < experiment.getIndependentRuns(); i++) {
        String frontFileName=problemDirectory + "String_Node_Str" + experiment.getOutputParetoFrontFileName()+ i+ "String_Node_Str";
        Front front=new ArrayFront(frontFileName);
        List<PointSolution> solutionList=FrontUtils.convertFrontToSolutionList(front);
        GenericSolutionAttribute<PointSolution,String> solutionAttribute=new GenericSolutionAttribute<PointSolution,String>();
        for (        PointSolution solution : solutionList) {
          solutionAttribute.setAttribute(solution,algorithm.getAlgorithmTag());
          nonDominatedSolutionArchive.add(solution);
        }
      }
    }
    String referenceSetFileName=outputDirectoryName + "String_Node_Str" + problem.getTag()+ "String_Node_Str";
    referenceFrontFileNames.add(problem.getTag() + "String_Node_Str");
    new SolutionListOutput(nonDominatedSolutionArchive.getSolutionList()).printObjectivesToFile(referenceSetFileName);
    writeFilesWithTheSolutionsContributedByEachAlgorithm(outputDirectoryName,problem.getProblem(),nonDominatedSolutionArchive.getSolutionList());
  }
  experiment.setReferenceFrontFileNames(referenceFrontFileNames);
}

Fixed version (ground truth):
/** 
 * The run() method creates de output directory and compute the fronts
 */
@Override public void run() throws IOException {
  String outputDirectoryName=experiment.getReferenceFrontDirectory();
  createOutputDirectory(outputDirectoryName);
  List<String> referenceFrontFileNames=new LinkedList<>();
  for (  ExperimentProblem<?> problem : experiment.getProblemList()) {
    NonDominatedSolutionListArchive<PointSolution> nonDominatedSolutionArchive=new NonDominatedSolutionListArchive<PointSolution>();
    for (    ExperimentAlgorithm<?,?> algorithm : experiment.getAlgorithmList()) {
      String problemDirectory=experiment.getExperimentBaseDirectory() + "String_Node_Str" + algorithm.getAlgorithmTag()+ "String_Node_Str"+ problem.getTag();
      for (int i=0; i < experiment.getIndependentRuns(); i++) {
        String frontFileName=problemDirectory + "String_Node_Str" + experiment.getOutputParetoFrontFileName()+ i+ "String_Node_Str";
        Front front=new ArrayFront(frontFileName);
        List<PointSolution> solutionList=FrontUtils.convertFrontToSolutionList(front);
        GenericSolutionAttribute<PointSolution,String> solutionAttribute=new GenericSolutionAttribute<PointSolution,String>();
        for (        PointSolution solution : solutionList) {
          solutionAttribute.setAttribute(solution,algorithm.getAlgorithmTag());
          nonDominatedSolutionArchive.add(solution);
        }
      }
    }
    String referenceSetFileName=outputDirectoryName + "String_Node_Str" + problem.getTag()+ "String_Node_Str";
    referenceFrontFileNames.add(problem.getTag() + "String_Node_Str");
    new SolutionListOutput(nonDominatedSolutionArchive.getSolutionList()).printObjectivesToFile(referenceSetFileName);
    writeFilesWithTheSolutionsContributedByEachAlgorithm(outputDirectoryName,problem,nonDominatedSolutionArchive.getSolutionList());
  }
  experiment.setReferenceFrontFileNames(referenceFrontFileNames);
}