Program: 12154
Project: 12154
Buggy source:
/** 
 * Spawns a child JVM for the test and waits for it to exit.
 * @param test The test to run
 * @param jsoar Whether this is a JSoar or CSoar test
 * @return Whether the run was successful or not
 */
private int spawnChildJVMForTest(Configuration.ConfigurationTest test,boolean jsoar){
  List<String> arguments=new ArrayList<String>();
  URL baseURL=PerformanceTesting.class.getProtectionDomain().getCodeSource().getLocation();
  String jarPath=null;
  try {
    jarPath=new File(baseURL.toURI().getPath()).getCanonicalPath();
  }
 catch (  IOException|URISyntaxException e1) {
    throw new AssertionError(e1);
  }
  jarPath=jarPath.replace("String_Node_Str","String_Node_Str");
  if (jarPath.endsWith("String_Node_Str") != true) {
    String originalPath=jarPath;
    jarPath+="String_Node_Str";
    jarPath+=originalPath + "String_Node_Str";
    File directory=new File(originalPath + "String_Node_Str");
    File[] listOfFiles=directory.listFiles();
    for (    File file : listOfFiles) {
      if (file.isFile()) {
        String path=file.getPath();
        if (!path.endsWith("String_Node_Str")) {
          continue;
        }
        path=path.replace("String_Node_Str","String_Node_Str");
        jarPath+=path + "String_Node_Str";
      }
    }
    directory=new File(originalPath + "String_Node_Str");
    listOfFiles=directory.listFiles();
    for (    File file : listOfFiles) {
      if (file.isFile()) {
        String path=file.getPath();
        if (!path.endsWith("String_Node_Str")) {
          continue;
        }
        path=path.replace("String_Node_Str","String_Node_Str");
        jarPath+=path + "String_Node_Str";
      }
    }
  }
  arguments.add("String_Node_Str");
  arguments.addAll(Arrays.asList(test.getTestSettings().getJVMSettings().split("String_Node_Str")));
  arguments.add("String_Node_Str");
  arguments.add("String_Node_Str" + jarPath + "String_Node_Str");
  arguments.add(PerformanceTesting.class.getCanonicalName());
  arguments.add("String_Node_Str");
  arguments.add(test.getTestFile());
  arguments.add("String_Node_Str");
  arguments.add(test.getTestSettings().getCSVDirectory());
  arguments.add("String_Node_Str");
  arguments.add(new Integer(test.getTestSettings().getWarmUpCount()).toString());
  arguments.add("String_Node_Str");
  arguments.add(new Integer(test.getTestSettings().getDecisionCycles()).toString());
  arguments.add("String_Node_Str");
  arguments.add(test.getTestName());
  arguments.add("String_Node_Str");
  arguments.add("String_Node_Str");
  int exitCode=0;
  if (jsoar) {
    arguments.add("String_Node_Str");
    exitCode=runJVM(test,arguments);
  }
 else {
    arguments.add("String_Node_Str");
    for (    String path : test.getTestSettings().getCSoarVersions()) {
      List<String> argumentsPerTest=new ArrayList<String>(arguments);
      argumentsPerTest.add("String_Node_Str" + path + "String_Node_Str");
      exitCode=runJVM(test,argumentsPerTest);
    }
  }
  if (exitCode != 0) {
    return EXIT_FAILURE_TEST;
  }
 else {
    return EXIT_SUCCESS;
  }
}

Fixed version (ground truth):
/** 
 * Spawns a child JVM for the test and waits for it to exit.
 * @param test The test to run
 * @param jsoar Whether this is a JSoar or CSoar test
 * @return Whether the run was successful or not
 */
private int spawnChildJVMForTest(Configuration.ConfigurationTest test,boolean jsoar){
  List<String> arguments=new ArrayList<String>();
  URL baseURL=PerformanceTesting.class.getProtectionDomain().getCodeSource().getLocation();
  String jarPath=null;
  try {
    jarPath=new File(baseURL.toURI().getPath()).getCanonicalPath();
  }
 catch (  IOException|URISyntaxException e1) {
    throw new AssertionError(e1);
  }
  jarPath=jarPath.replace("String_Node_Str","String_Node_Str");
  if (jarPath.endsWith("String_Node_Str") != true) {
    Character pathSeperator=File.pathSeparatorChar;
    String originalPath=jarPath;
    jarPath+=pathSeperator;
    jarPath+=originalPath + "String_Node_Str";
    File directory=new File(originalPath + "String_Node_Str");
    File[] listOfFiles=directory.listFiles();
    for (    File file : listOfFiles) {
      if (file.isFile()) {
        String path=file.getPath();
        if (!path.endsWith("String_Node_Str")) {
          continue;
        }
        path=path.replace("String_Node_Str","String_Node_Str");
        jarPath+=path + pathSeperator;
      }
    }
    directory=new File(originalPath + "String_Node_Str");
    listOfFiles=directory.listFiles();
    for (    File file : listOfFiles) {
      if (file.isFile()) {
        String path=file.getPath();
        if (!path.endsWith("String_Node_Str")) {
          continue;
        }
        path=path.replace("String_Node_Str","String_Node_Str");
        jarPath+=path + pathSeperator;
      }
    }
  }
  arguments.add("String_Node_Str");
  arguments.addAll(Arrays.asList(test.getTestSettings().getJVMSettings().split("String_Node_Str")));
  arguments.add("String_Node_Str");
  arguments.add("String_Node_Str" + jarPath + "String_Node_Str");
  arguments.add(PerformanceTesting.class.getCanonicalName());
  arguments.add("String_Node_Str");
  arguments.add(test.getTestFile());
  arguments.add("String_Node_Str");
  arguments.add(test.getTestSettings().getCSVDirectory());
  arguments.add("String_Node_Str");
  arguments.add(new Integer(test.getTestSettings().getWarmUpCount()).toString());
  arguments.add("String_Node_Str");
  arguments.add(new Integer(test.getTestSettings().getDecisionCycles()).toString());
  arguments.add("String_Node_Str");
  arguments.add(test.getTestName());
  arguments.add("String_Node_Str");
  arguments.add("String_Node_Str");
  int exitCode=0;
  if (jsoar) {
    arguments.add("String_Node_Str");
    exitCode=runJVM(test,arguments);
  }
 else {
    arguments.add("String_Node_Str");
    for (    String path : test.getTestSettings().getCSoarVersions()) {
      List<String> argumentsPerTest=new ArrayList<String>(arguments);
      argumentsPerTest.add("String_Node_Str" + path + "String_Node_Str");
      exitCode=runJVM(test,argumentsPerTest);
    }
  }
  if (exitCode != 0) {
    return EXIT_FAILURE_TEST;
  }
 else {
    return EXIT_SUCCESS;
  }
}