diff options
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 7 | ||||
-rw-r--r-- | libjava/java/net/URLClassLoader.java | 10 |
2 files changed, 16 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 94cb464..e7c86ed 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 10b6735..9a468bf 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); @@ -654,6 +657,11 @@ public class URLClassLoader extends SecureClassLoader */ protected void addURL(URL newUrl) { + addURLImpl(newUrl); + } + + private void addURLImpl(URL newUrl) + { synchronized(urlloaders) { if (newUrl == null) @@ -690,7 +698,7 @@ public class URLClassLoader extends SecureClassLoader { for (int i = 0; i < newUrls.length; i++) { - addURL(newUrls[i]); + addURLImpl(newUrls[i]); } } |