aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog7
-rw-r--r--libjava/java/net/URLClassLoader.java10
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]);
}
}