diff options
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/java/lang/ClassLoader.java | 20 |
2 files changed, 17 insertions, 8 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 8695a4a..1267d768 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2002-11-03 Tom Tromey <tromey@redhat.com> + + * java/lang/ClassLoader.java (loadClass): Call loadClass on + VMClassLoader, not findClass. + 2002-11-03 Jeff Sturm <jsturm@one-point.com> * resolve.cc (METHOD_NOT_THERE, METHOD_INACCESSIBLE): Remove. diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java index 2c0e211..1b3b310 100644 --- a/libjava/java/lang/ClassLoader.java +++ b/libjava/java/lang/ClassLoader.java @@ -177,14 +177,18 @@ public abstract class ClassLoader if (c == null) { - try { - if (parent != null) - return parent.loadClass (name, link); - else - c = gnu.gcj.runtime.VMClassLoader.instance.findClass (name); - } catch (ClassNotFoundException ex) { - /* ignore, we'll try findClass */; - } + try + { + ClassLoader cl = parent; + if (parent == null) + cl = gnu.gcj.runtime.VMClassLoader.instance; + if (cl != this) + c = cl.loadClass (name, link); + } + catch (ClassNotFoundException ex) + { + /* ignore, we'll try findClass */; + } } if (c == null) |