Program: 132925
Project: 132925
Buggy source:
private static void runPreprocessor(Logger logger,String input,String output,List<String> preprocArgs){
  List<String> cmd=new ArrayList<String>();
  if (useGCCProcessor()) {
    cmd.addAll(Arrays.asList("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",input,output));
  }
 else {
    cmd.addAll(Arrays.asList("String_Node_Str",input,output));
  }
  for (  String dir : Settings.getModulePath()) {
    cmd.add("String_Node_Str");
    cmd.add(dir);
  }
  for (  String macro : preprocArgs) {
    cmd.add("String_Node_Str");
    cmd.add(macro);
  }
  String cmdString=StringUtils.join(cmd,' ');
  try {
    logger.debug("String_Node_Str" + cmdString);
    Process cpp=Runtime.getRuntime().exec(cmd.toArray(new String[]{}));
    int cppExitCode=-1;
    boolean done=false;
    do {
      try {
        cppExitCode=cpp.waitFor();
        done=true;
      }
 catch (      InterruptedException ex) {
      }
    }
 while (!done);
    StringWriter sw=new StringWriter();
    IOUtils.copy(cpp.getErrorStream(),sw,"String_Node_Str");
    String cppStderr=sw.toString();
    logger.debug("String_Node_Str" + cppExitCode);
    logger.debug("String_Node_Str" + cppStderr);
    if (cppExitCode != 0) {
      System.out.println(cppStderr);
      System.out.println("String_Node_Str" + cmdString + "String_Node_Str"+ ("String_Node_Str" + cppExitCode + "String_Node_Str"));
      System.exit(1);
    }
  }
 catch (  IOException e) {
    System.out.println("String_Node_Str" + cmdString + "String_Node_Str"+ e.getMessage());
    System.exit(1);
  }
}

Fixed version (ground truth):
private static void runPreprocessor(Logger logger,String input,String output,List<String> preprocArgs){
  List<String> cmd=new ArrayList<String>();
  if (useGCCProcessor()) {
    cmd.addAll(Arrays.asList("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str",input,"String_Node_Str",output));
  }
 else {
    cmd.addAll(Arrays.asList("String_Node_Str",input,output));
  }
  for (  String dir : Settings.getModulePath()) {
    cmd.add("String_Node_Str");
    cmd.add(dir);
  }
  for (  String macro : preprocArgs) {
    cmd.add("String_Node_Str");
    cmd.add(macro);
  }
  String cmdString=StringUtils.join(cmd,' ');
  try {
    logger.debug("String_Node_Str" + cmdString);
    Process cpp=Runtime.getRuntime().exec(cmd.toArray(new String[]{}));
    int cppExitCode=-1;
    boolean done=false;
    do {
      try {
        cppExitCode=cpp.waitFor();
        done=true;
      }
 catch (      InterruptedException ex) {
      }
    }
 while (!done);
    StringWriter sw=new StringWriter();
    IOUtils.copy(cpp.getErrorStream(),sw,"String_Node_Str");
    String cppStderr=sw.toString();
    logger.debug("String_Node_Str" + cppExitCode);
    logger.debug("String_Node_Str" + cppStderr);
    if (cppExitCode != 0) {
      System.out.println(cppStderr);
      System.out.println("String_Node_Str" + cmdString + "String_Node_Str"+ ("String_Node_Str" + cppExitCode + "String_Node_Str"));
      System.exit(1);
    }
  }
 catch (  IOException e) {
    System.out.println("String_Node_Str" + cmdString + "String_Node_Str"+ e.getMessage());
    System.exit(1);
  }
}