Program: 64202
Project: 64202
Buggy source:
/** 
 * Add a file to the path. Reads the manifest, if available, and adds any additional class path jars specified in the manifest.
 * @param pathComponent the file which is to be added to the path forthis class loader
 * @throws IOException if data needed from the file cannot be read.
 */
protected void addPathFile(File pathComponent) throws IOException {
  pathComponents.addElement(pathComponent);
  if (pathComponent.isDirectory()) {
    return;
  }
  String absPathPlusTimeAndLength=pathComponent.getAbsolutePath() + pathComponent.lastModified() + "String_Node_Str"+ pathComponent.length();
  String classpath=(String)pathMap.get(absPathPlusTimeAndLength);
  if (classpath == null) {
    ZipFile jarFile=null;
    InputStream manifestStream=null;
    try {
      jarFile=new ZipFile(pathComponent);
      manifestStream=jarFile.getInputStream(new ZipEntry("String_Node_Str"));
      if (manifestStream == null) {
        return;
      }
      Reader manifestReader=new InputStreamReader(manifestStream,"String_Node_Str");
      org.apache.tools.ant.taskdefs.Manifest manifest=new org.apache.tools.ant.taskdefs.Manifest(manifestReader);
      classpath=manifest.getMainSection().getAttributeValue("String_Node_Str");
    }
 catch (    org.apache.tools.ant.taskdefs.ManifestException e) {
    }
 finally {
      if (manifestStream != null) {
        manifestStream.close();
      }
      if (jarFile != null) {
        jarFile.close();
      }
    }
    if (classpath == null) {
      classpath="String_Node_Str";
    }
    pathMap.put(absPathPlusTimeAndLength,classpath);
  }
  if (!"String_Node_Str".equals(classpath)) {
    URL baseURL=FILE_UTILS.getFileURL(pathComponent);
    StringTokenizer st=new StringTokenizer(classpath);
    while (st.hasMoreTokens()) {
      String classpathElement=st.nextToken();
      URL libraryURL=new URL(baseURL,classpathElement);
      if (!libraryURL.getProtocol().equals("String_Node_Str")) {
        log("String_Node_Str" + classpathElement + "String_Node_Str"+ "String_Node_Str",Project.MSG_VERBOSE);
        continue;
      }
      File libraryFile=new File(libraryURL.getFile());
      if (libraryFile.exists() && !isInPath(libraryFile)) {
        addPathFile(libraryFile);
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Add a file to the path. Reads the manifest, if available, and adds any additional class path jars specified in the manifest.
 * @param pathComponent the file which is to be added to the path forthis class loader
 * @throws IOException if data needed from the file cannot be read.
 */
protected void addPathFile(File pathComponent) throws IOException {
  pathComponents.addElement(pathComponent);
  if (pathComponent.isDirectory()) {
    return;
  }
  String absPathPlusTimeAndLength=pathComponent.getAbsolutePath() + pathComponent.lastModified() + "String_Node_Str"+ pathComponent.length();
  String classpath=(String)pathMap.get(absPathPlusTimeAndLength);
  if (classpath == null) {
    ZipFile jarFile=null;
    InputStream manifestStream=null;
    try {
      jarFile=new ZipFile(pathComponent);
      manifestStream=jarFile.getInputStream(new ZipEntry("String_Node_Str"));
      if (manifestStream == null) {
        return;
      }
      Reader manifestReader=new InputStreamReader(manifestStream,"String_Node_Str");
      org.apache.tools.ant.taskdefs.Manifest manifest=new org.apache.tools.ant.taskdefs.Manifest(manifestReader);
      classpath=manifest.getMainSection().getAttributeValue("String_Node_Str");
    }
 catch (    org.apache.tools.ant.taskdefs.ManifestException e) {
    }
 finally {
      if (manifestStream != null) {
        manifestStream.close();
      }
      if (jarFile != null) {
        jarFile.close();
      }
    }
    if (classpath == null) {
      classpath="String_Node_Str";
    }
    pathMap.put(absPathPlusTimeAndLength,classpath);
  }
  if (!"String_Node_Str".equals(classpath)) {
    URL baseURL=FILE_UTILS.getFileURL(pathComponent);
    StringTokenizer st=new StringTokenizer(classpath);
    while (st.hasMoreTokens()) {
      String classpathElement=st.nextToken();
      URL libraryURL=new URL(baseURL,classpathElement);
      if (!libraryURL.getProtocol().equals("String_Node_Str")) {
        log("String_Node_Str" + classpathElement + "String_Node_Str"+ "String_Node_Str",Project.MSG_VERBOSE);
        continue;
      }
      File libraryFile=new File(URLDecoder.decode(libraryURL.getFile()));
      if (libraryFile.exists() && !isInPath(libraryFile)) {
        addPathFile(libraryFile);
      }
    }
  }
}