Program: 64275
Project: 64275
Buggy source:
/** 
 * Do the work. The work is actually done by creating a separate JVM to run a helper task.  This approach allows the classpath of the helper task to be set. Since the  weblogic tools require the class files of the project's home and remote  interfaces to be available in the classpath, this also avoids having to  start ant with the class path of the project it is building.
 * @exception BuildException if someting goes wrong with the build
 */
public void execute() throws BuildException {
  if (descriptorDirectory == null || !descriptorDirectory.isDirectory()) {
    throw new BuildException("String_Node_Str" + descriptorDirectory.getPath() + "String_Node_Str");
  }
  if (generatedFilesDirectory == null || !generatedFilesDirectory.isDirectory()) {
    throw new BuildException("String_Node_Str" + generatedFilesDirectory.getPath() + "String_Node_Str");
  }
  if (sourceDirectory == null || !sourceDirectory.isDirectory()) {
    throw new BuildException("String_Node_Str" + sourceDirectory.getPath() + "String_Node_Str");
  }
  String systemClassPath=System.getProperty("String_Node_Str");
  String execClassPath=project.translatePath(systemClassPath + "String_Node_Str" + classpath+ "String_Node_Str"+ generatedFilesDirectory);
  DirectoryScanner ds=super.getDirectoryScanner(descriptorDirectory);
  String[] files=ds.getIncludedFiles();
  Java helperTask=(Java)project.createTask("String_Node_Str");
  helperTask.setTaskName(getTaskName());
  helperTask.setFork(true);
  helperTask.setClassname("String_Node_Str");
  String args="String_Node_Str";
  args+="String_Node_Str" + descriptorDirectory;
  args+="String_Node_Str" + generatedFilesDirectory;
  args+="String_Node_Str" + sourceDirectory;
  args+="String_Node_Str" + generatedManifestFile;
  args+="String_Node_Str" + keepgenerated;
  for (int i=0; i < files.length; ++i) {
    args+="String_Node_Str" + files[i];
  }
  Commandline.Argument arguments=helperTask.createArg();
  arguments.setLine(args);
  helperTask.setClasspath(new Path(project,execClassPath));
  if (helperTask.executeJava() != 0) {
    throw new BuildException("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Do the work. The work is actually done by creating a separate JVM to run a helper task. This approach allows the classpath of the helper task to be set. Since the weblogic tools require the class files of the project's home and remote interfaces to be available in the classpath, this also avoids having to start ant with the class path of the project it is building.
 * @exception BuildException if someting goes wrong with the build
 */
public void execute() throws BuildException {
  if (descriptorDirectory == null || !descriptorDirectory.isDirectory()) {
    throw new BuildException("String_Node_Str" + descriptorDirectory.getPath() + "String_Node_Str");
  }
  if (generatedFilesDirectory == null || !generatedFilesDirectory.isDirectory()) {
    throw new BuildException("String_Node_Str" + generatedFilesDirectory.getPath() + "String_Node_Str");
  }
  if (sourceDirectory == null || !sourceDirectory.isDirectory()) {
    throw new BuildException("String_Node_Str" + sourceDirectory.getPath() + "String_Node_Str");
  }
  String systemClassPath=System.getProperty("String_Node_Str");
  String execClassPath=project.translatePath(systemClassPath + "String_Node_Str" + classpath+ "String_Node_Str"+ generatedFilesDirectory);
  DirectoryScanner ds=super.getDirectoryScanner(descriptorDirectory);
  String[] files=ds.getIncludedFiles();
  Java helperTask=(Java)project.createTask("String_Node_Str");
  helperTask.setTaskName(getTaskName());
  helperTask.setFork(true);
  helperTask.setClassname("String_Node_Str");
  String args="String_Node_Str";
  args+="String_Node_Str" + descriptorDirectory;
  args+="String_Node_Str" + generatedFilesDirectory;
  args+="String_Node_Str" + sourceDirectory;
  args+="String_Node_Str" + generatedManifestFile;
  args+="String_Node_Str" + keepgenerated;
  for (int i=0; i < files.length; ++i) {
    args+="String_Node_Str" + files[i];
  }
  Commandline.Argument arguments=helperTask.createArg();
  arguments.setLine(args);
  helperTask.setClasspath(new Path(project,execClassPath));
  if (helperTask.executeJava() != 0) {
    throw new BuildException("String_Node_Str");
  }
}