Program: 176601
Project: 176601
Buggy source:
/** 
 * Scan class resource in the provided urls with the additional Class-Path of each jar checking
 * @param classRelativePath relative path to a class resource
 * @param urls urls to be checked
 * @return list of class path included in the base package
 */
private URL[] findResourcesInUrls(String classRelativePath,URL[] urls){
  List<URL> list=new ArrayList<URL>();
  for (  URL url : urls) {
    if (AllowedProtocol.isValidProtocol(url.getProtocol().toUpperCase()) && url.getPath().endsWith("String_Node_Str")) {
      try {
        JarFile jarFile=new JarFile(URLDecoder.decode(url.getFile(),Constants.CHARSET_UTF8));
        Manifest manifest=jarFile.getManifest();
        if (manifest != null) {
          String classPath=manifest.getMainAttributes().getValue("String_Node_Str");
          if (!StringUtils.isEmpty(classPath)) {
            List<URL> subList=new ArrayList<URL>();
            for (            String cpEntry : classPath.split("String_Node_Str")) {
              try {
                subList.add(new URL(cpEntry));
              }
 catch (              MalformedURLException e) {
                logger.warn("String_Node_Str" + url.toString() + "String_Node_Str"+ cpEntry);
              }
            }
            list.addAll(Arrays.asList(findResourcesInUrls(classRelativePath,subList.toArray(new URL[subList.size()]))));
          }
        }
        JarEntry present=jarFile.getJarEntry(classRelativePath + "String_Node_Str");
        if (present != null) {
          list.add(url);
        }
      }
 catch (      IOException e) {
        logger.warn("String_Node_Str" + e.getMessage());
      }
    }
 else     if (url.getPath().endsWith("String_Node_Str")) {
      File file=new File(url.getPath() + classRelativePath + "String_Node_Str");
      if (file.exists()) {
        try {
          list.add(file.toURL());
        }
 catch (        MalformedURLException e) {
          throw new ResourceReadingException(e);
        }
      }
    }
  }
  return list.toArray(new URL[list.size()]);
}

Fixed version (ground truth):
/** 
 * Scan class resource in the provided urls with the additional Class-Path of each jar checking
 * @param classRelativePath relative path to a class resource
 * @param urls urls to be checked
 * @return list of class path included in the base package
 */
private URL[] findResourcesInUrls(String classRelativePath,URL[] urls){
  List<URL> list=new ArrayList<URL>();
  ClassLoader classLoader=Thread.currentThread().getContextClassLoader();
  for (  URL url : urls) {
    if (AllowedProtocol.isValidProtocol(url.getProtocol().toUpperCase()) && url.getPath().endsWith("String_Node_Str")) {
      try {
        JarFile jarFile=new JarFile(URLDecoder.decode(url.getFile(),Constants.CHARSET_UTF8));
        Manifest manifest=jarFile.getManifest();
        if (manifest != null) {
          String classPath=manifest.getMainAttributes().getValue("String_Node_Str");
          if (!StringUtils.isEmpty(classPath)) {
            List<URL> subList=new ArrayList<URL>();
            for (            String cpEntry : classPath.split("String_Node_Str")) {
              URLClassLoader loader=(URLClassLoader)this.getClass().getClassLoader();
              URL enclosedJar=loader.findResource(cpEntry);
              if (enclosedJar != null) {
                subList.add(enclosedJar);
              }
            }
            list.addAll(Arrays.asList(findResourcesInUrls(classRelativePath,subList.toArray(new URL[subList.size()]))));
          }
        }
        JarEntry present=jarFile.getJarEntry(classRelativePath + "String_Node_Str");
        if (present != null) {
          list.add(url);
        }
      }
 catch (      IOException e) {
        logger.warn("String_Node_Str" + e.getMessage());
      }
    }
 else     if (url.getPath().endsWith("String_Node_Str")) {
      File file=new File(url.getPath() + classRelativePath + "String_Node_Str");
      if (file.exists()) {
        try {
          list.add(file.toURL());
        }
 catch (        MalformedURLException e) {
          throw new ResourceReadingException(e);
        }
      }
    }
  }
  return list.toArray(new URL[list.size()]);
}