diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 94cb464fcf8f4d137c8e19fa392df49be84c3c1e..e7c86ed7ff23360e2b58175070b3d6d07bfd0d72 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,10 @@ +2003-07-19 Jeroen Frijters <jeroen@sumatra.nl> + + * java/net/URLClassLoader.java (addURL): Moved implementation to + private addURLImpl() to avoid calling addURL from the constructor. + (addURLImpl): Contains the code that was previously in addURL. + (addURLs): Call addURLImpl(), not addURL(). + 2003-07-18 Graydon Hoare <graydon@redhat.com> * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c: diff --git a/libjava/java/net/URLClassLoader.java b/libjava/java/net/URLClassLoader.java index 10b67352f044b4a99e2c1548bac20981c51693db..9a468bf71af33f46f221db19fdeb943c50cbf014 100644 --- a/libjava/java/net/URLClassLoader.java +++ b/libjava/java/net/URLClassLoader.java @@ -311,6 +311,9 @@ public class URLClassLoader extends SecureClassLoader if (jarfile == null) return null; + if (name.startsWith("/")) + name = name.substring(1); + JarEntry je = jarfile.getJarEntry(name); if(je != null) return new JarURLResource(this, name, je); @@ -653,6 +656,11 @@ public class URLClassLoader extends SecureClassLoader * @param newUrl the location to add */ protected void addURL(URL newUrl) + { + addURLImpl(newUrl); + } + + private void addURLImpl(URL newUrl) { synchronized(urlloaders) { @@ -690,7 +698,7 @@ public class URLClassLoader extends SecureClassLoader { for (int i = 0; i < newUrls.length; i++) { - addURL(newUrls[i]); + addURLImpl(newUrls[i]); } }