Program: 9649
Project: 9649
Buggy source:
/** 
 * Generate build configuration for the input args, passing to handler any error messages.
 * @param args the String[] arguments for the build configuration
 * @param handler the IMessageHandler handler for any errors
 * @return AjBuildConfig per args, which will be invalid unless there are no handler errors.
 */
public AjBuildConfig genBuildConfig(String[] args,IMessageHandler handler){
  AjBuildConfig buildConfig=new AjBuildConfig();
  try {
    super.filenames=new String[]{"String_Node_Str"};
    List fileList=new ArrayList();
    AjcConfigParser parser=new AjcConfigParser(buildConfig,handler);
    parser.parseCommandLine(args);
    boolean incrementalMode=buildConfig.isIncrementalMode() || buildConfig.isIncrementalFileMode();
    List files=parser.getFiles();
    if (!LangUtil.isEmpty(files)) {
      if (incrementalMode) {
        MessageUtil.error(handler,"String_Node_Str");
      }
 else {
        fileList.addAll(files);
      }
    }
    List javaArgList=parser.getUnparsedArgs();
    javaArgList.add(0,"String_Node_Str");
    if (javaArgList.size() != 0) {
      super.configure((String[])javaArgList.toArray(new String[javaArgList.size()]));
    }
    if (buildConfig.getSourceRoots() != null) {
      for (Iterator i=buildConfig.getSourceRoots().iterator(); i.hasNext(); ) {
        fileList.addAll(collectSourceRootFiles((File)i.next()));
      }
    }
    buildConfig.setFiles(fileList);
    if (destinationPath != null) {
      buildConfig.setOutputDir(new File(destinationPath));
    }
    buildConfig.setClasspath(getClasspath(parser));
    if (incrementalMode && (0 == buildConfig.getSourceRoots().size())) {
      MessageUtil.error(handler,"String_Node_Str");
    }
    setDebugOptions();
    buildConfig.setJavaOptions(options);
  }
 catch (  InvalidInputException iie) {
    MessageUtil.error(handler,iie.getMessage());
  }
  return buildConfig;
}

Fixed version (ground truth):
/** 
 * Generate build configuration for the input args, passing to handler any error messages.
 * @param args the String[] arguments for the build configuration
 * @param handler the IMessageHandler handler for any errors
 * @return AjBuildConfig per args, which will be invalid unless there are no handler errors.
 */
public AjBuildConfig genBuildConfig(String[] args,IMessageHandler handler){
  AjBuildConfig buildConfig=new AjBuildConfig();
  try {
    super.filenames=new String[]{"String_Node_Str"};
    List fileList=new ArrayList();
    AjcConfigParser parser=new AjcConfigParser(buildConfig,handler);
    parser.parseCommandLine(args);
    boolean incrementalMode=buildConfig.isIncrementalMode() || buildConfig.isIncrementalFileMode();
    List files=parser.getFiles();
    if (!LangUtil.isEmpty(files)) {
      if (incrementalMode) {
        MessageUtil.error(handler,"String_Node_Str");
      }
 else {
        fileList.addAll(files);
      }
    }
    List javaArgList=new ArrayList();
    javaArgList.add("String_Node_Str");
    javaArgList.add("String_Node_Str");
    javaArgList.add(System.getProperty("String_Node_Str"));
    javaArgList.add("String_Node_Str");
    javaArgList.add(System.getProperty("String_Node_Str"));
    javaArgList.addAll(parser.getUnparsedArgs());
    super.configure((String[])javaArgList.toArray(new String[javaArgList.size()]));
    if (buildConfig.getSourceRoots() != null) {
      for (Iterator i=buildConfig.getSourceRoots().iterator(); i.hasNext(); ) {
        fileList.addAll(collectSourceRootFiles((File)i.next()));
      }
    }
    buildConfig.setFiles(fileList);
    if (destinationPath != null) {
      buildConfig.setOutputDir(new File(destinationPath));
    }
    buildConfig.setClasspath(getClasspath(parser));
    if (incrementalMode && (0 == buildConfig.getSourceRoots().size())) {
      MessageUtil.error(handler,"String_Node_Str");
    }
    setDebugOptions();
    buildConfig.setJavaOptions(options);
  }
 catch (  InvalidInputException iie) {
    MessageUtil.error(handler,iie.getMessage());
  }
  return buildConfig;
}