if (subURL.equals(baseURL)) continue;
  private void initialize()  {    JarFile jarfile = null;    try      {        jarfile =          ((JarURLConnection) baseJarURL.openConnection()).getJarFile();                Manifest manifest;        Attributes attributes;        String classPathString;        IndexListParser parser = new IndexListParser(jarfile, baseJarURL,                                                     baseURL);        LinkedHashMap indexMap = parser.getHeaders();        if (indexMap != null)          {            // Note that the index also computes            // the resulting Class-Path -- there are jars out there            // where the index lists some required jars which do            // not appear in the Class-Path attribute in the manifest.            this.classPath = new ArrayList();            Iterator it = indexMap.entrySet().iterator();            while (it.hasNext())              {                Map.Entry entry = (Map.Entry) it.next();                URL subURL = (URL) entry.getKey();                Set prefixes = (Set) entry.getValue();                if (subURL.equals(baseURL))                  this.indexSet = prefixes;                else                  {                    JarURLLoader subLoader = new JarURLLoader(classloader,                                                              cache,                                                              factory, subURL,                                                              subURL,                                                              prefixes);                    // Note that we don't care if the sub-loader itself has an                    // index or a class-path -- only the top-level jar                    // file gets this treatment; its index should cover                    // everything.                    this.classPath.add(subLoader);                  }              }          }        else if ((manifest = jarfile.getManifest()) != null                 && (attributes = manifest.getMainAttributes()) != null                 && ((classPathString                      = attributes.getValue(Attributes.Name.CLASS_PATH))                      != null))          {            this.classPath = new ArrayList();            StringTokenizer st = new StringTokenizer(classPathString, " ");            while (st.hasMoreElements ())               {                String e = st.nextToken ();                try                  {                    URL subURL = new URL(baseURL, e);                    JarURLLoader subLoader = new JarURLLoader(classloader,                                                              cache, factory,                                                              subURL, subURL);                    this.classPath.add(subLoader);                    ArrayList extra = subLoader.getClassPath();                    if (extra != null)                      this.classPath.addAll(extra);                  }                catch (java.net.MalformedURLException xx)                  {                    // Give up                  }              }          }      }    catch (IOException ioe)      {        /* ignored */      }    this.jarfile = jarfile;    this.initialized = true;  }