Program: 64461
Project: 64461
Buggy source:
/** 
 * Create a list of non dominated   {@link DoubleSolution} solutions from the FUNx.tsv and VARx.tsv files thatmust have been previously obtained (probably by invoking the  {@link ExecuteAlgorithms#run} method).
 * @param problem
 * @return
 * @throws FileNotFoundException
 */
private List<DoubleSolution> getNonDominatedSolutions(ExperimentProblem<?> problem) throws FileNotFoundException {
  NonDominatedSolutionListArchive<DoubleSolution> nonDominatedSolutionArchive=new NonDominatedSolutionListArchive<DoubleSolution>();
  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";
      String paretoSetFileName=problemDirectory + "String_Node_Str" + experiment.getOutputParetoSetFileName()+ i+ "String_Node_Str";
      Front frontWithObjectiveValues=new ArrayFront(frontFileName);
      Front frontWithVariableValues=new ArrayFront(paretoSetFileName);
      List<DoubleSolution> solutionList=createSolutionListFrontFiles(algorithm.getAlgorithmTag(),frontWithVariableValues,frontWithObjectiveValues);
      for (      DoubleSolution solution : solutionList) {
        nonDominatedSolutionArchive.add(solution);
      }
    }
  }
  return nonDominatedSolutionArchive.getSolutionList();
}

Fixed version (ground truth):
/** 
 * Create a list of non dominated   {@link DoubleSolution} solutions from the FUNx.tsv and VARx.tsv files thatmust have been previously obtained (probably by invoking the  {@link ExecuteAlgorithms#run} method).
 * @param problem
 * @return
 * @throws FileNotFoundException
 */
private List<DoubleSolution> getNonDominatedSolutions(ExperimentProblem<?> problem) throws FileNotFoundException {
  NonDominatedSolutionListArchive<DoubleSolution> nonDominatedSolutionArchive=new NonDominatedSolutionListArchive<DoubleSolution>();
  for (  ExperimentAlgorithm<?,?> algorithm : experiment.getAlgorithmList().stream().filter(s -> s.getProblemTag().equals(problem.getTag())).collect(Collectors.toCollection(ArrayList::new))) {
    String problemDirectory=experiment.getExperimentBaseDirectory() + "String_Node_Str" + algorithm.getAlgorithmTag()+ "String_Node_Str"+ problem.getTag();
    String frontFileName=problemDirectory + "String_Node_Str" + experiment.getOutputParetoFrontFileName()+ algorithm.getRunId()+ "String_Node_Str";
    String paretoSetFileName=problemDirectory + "String_Node_Str" + experiment.getOutputParetoSetFileName()+ algorithm.getRunId()+ "String_Node_Str";
    Front frontWithObjectiveValues=new ArrayFront(frontFileName);
    Front frontWithVariableValues=new ArrayFront(paretoSetFileName);
    List<DoubleSolution> solutionList=createSolutionListFrontFiles(algorithm.getAlgorithmTag(),frontWithVariableValues,frontWithObjectiveValues);
    for (    DoubleSolution solution : solutionList) {
      nonDominatedSolutionArchive.add(solution);
    }
  }
  return nonDominatedSolutionArchive.getSolutionList();
}