Program: 65157
Project: 65157
Buggy source:
/** 
 * parse <code>classPath</code> into an array containing <code>java.net.URL<code>
 * @param classPath : each path is separated with <code>Constants.CLASS_PATH_SEPERATOR</code>
 * @return
 * @throws OdaException if error/exception occur during parsing
 */
public URL[] parse(String classPath) throws OdaException {
  if (classPath == null) {
    return new URL[0];
  }
  String[] paths=classPath.split(String.valueOf(Constants.CLASS_PATH_SEPERATOR));
  List<URL> urls=new ArrayList<URL>();
  for (  String path : paths) {
    path=path.trim();
    if (path.equals("String_Node_Str")) {
      continue;
    }
    URI uri=null;
    if ((new File(path)).isAbsolute()) {
      uri=new File(path).toURI();
      try {
        urls.add(uri.toURL());
      }
 catch (      MalformedURLException e) {
        throw new OdaException(e);
      }
    }
 else {
      try {
        uri=new URI(enableURI(path));
      }
 catch (      URISyntaxException e) {
        throw new OdaException(e);
      }
      URI resovledUri=null;
      if (resourceIdentifiers != null) {
        resovledUri=ResourceIdentifiers.resolveApplResource(resourceIdentifiers,uri);
        if (resovledUri == null) {
          logger.log(Level.WARNING,"String_Node_Str" + uri + "String_Node_Str"+ ResourceIdentifiers.getApplResourceBaseURI(resourceIdentifiers)+ ')');
          resovledUri=ResourceIdentifiers.resolveDesignResource(resourceIdentifiers,uri);
        }
      }
      if (resovledUri == null) {
        logger.log(Level.WARNING,"String_Node_Str" + uri);
      }
 else {
        try {
          urls.add(resovledUri.toURL());
        }
 catch (        MalformedURLException e) {
          throw new OdaException(e);
        }
      }
    }
  }
  return urls.toArray(new URL[0]);
}

Fixed version (ground truth):
/** 
 * parse <code>classPath</code> into an array containing <code>java.net.URL<code>
 * @param classPath : each path is separated with <code>Constants.CLASS_PATH_SEPERATOR</code>
 * @return
 * @throws OdaException if error/exception occur during parsing
 */
public URL[] parse(String classPath) throws OdaException {
  if (classPath == null) {
    return new URL[0];
  }
  String[] paths=classPath.split(String.valueOf(Constants.CLASS_PATH_SEPERATOR));
  List<URL> urls=new ArrayList<URL>();
  for (  String path : paths) {
    path=path.trim();
    if (path.equals("String_Node_Str")) {
      continue;
    }
    URI uri=null;
    if ((new File(path)).isAbsolute()) {
      uri=new File(path).toURI();
      try {
        urls.add(uri.toURL());
      }
 catch (      MalformedURLException e) {
        throw new OdaException(e);
      }
    }
 else {
      try {
        uri=new URI(resolveURI(path));
      }
 catch (      URISyntaxException e) {
        throw new OdaException(e);
      }
      if (resourceIdentifiers != null) {
        URI resovledUri=ResourceIdentifiers.resolveApplResource(resourceIdentifiers,uri);
        if (resovledUri == null) {
          logger.log(Level.WARNING,"String_Node_Str" + uri + "String_Node_Str"+ ResourceIdentifiers.getApplResourceBaseURI(resourceIdentifiers)+ ')');
          resovledUri=ResourceIdentifiers.resolveDesignResource(resourceIdentifiers,uri);
        }
        if (resovledUri == null) {
          logger.log(Level.WARNING,"String_Node_Str" + uri);
        }
 else {
          try {
            try {
              String urlpath=enableURI(URLDecoder.decode(resovledUri.toString(),"String_Node_Str"));
              urls.add(new URL(urlpath));
            }
 catch (            UnsupportedEncodingException e) {
              urls.add(resovledUri.toURL());
            }
          }
 catch (          MalformedURLException e) {
            throw new OdaException(e);
          }
        }
      }
 else {
        try {
          urls.add(uri.toURL());
        }
 catch (        MalformedURLException e) {
          throw new OdaException(e);
        }
      }
    }
  }
  return urls.toArray(new URL[0]);
}