From a3857a178af208c7e54956bcc02d6433611e9be8 Mon Sep 17 00:00:00 2001 From: tromey Date: Mon, 4 Apr 2005 18:40:24 +0000 Subject: [PATCH] * java/lang/ClassLoader.java (loadClass): Resolve class even if it was already found. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97565 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 5 +++++ libjava/java/lang/ClassLoader.java | 32 +++++++++++++++--------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 59c6d972e2d6..f9a7617d7e3e 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2005-04-04 Tom Tromey + + * java/lang/ClassLoader.java (loadClass): Resolve class even if + it was already found. + 2005-04-04 Tom Tromey * java/net/URL.java (DEFAULT_SEARCH_PATH): Added diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java index f2beaac97f67..db68e60ba8db 100644 --- a/libjava/java/lang/ClassLoader.java +++ b/libjava/java/lang/ClassLoader.java @@ -285,28 +285,28 @@ public abstract class ClassLoader { // Have we already loaded this class? Class c = findLoadedClass(name); - if (c != null) - return c; - - // Can the class be loaded by a parent? - try + if (c == null) { - if (parent == null) + // Can the class be loaded by a parent? + try { - c = VMClassLoader.loadClass(name, resolve); - if (c != null) - return c; + if (parent == null) + { + c = VMClassLoader.loadClass(name, resolve); + if (c != null) + return c; + } + else + { + return parent.loadClass(name, resolve); + } } - else + catch (ClassNotFoundException e) { - return parent.loadClass(name, resolve); } + // Still not found, we have to do it ourself. + c = findClass(name); } - catch (ClassNotFoundException e) - { - } - // Still not found, we have to do it ourself. - c = findClass(name); if (resolve) resolveClass(c); return c; -- 2.47.3