diff options
Diffstat (limited to 'libjava')
| -rw-r--r-- | libjava/ChangeLog | 5 | ||||
| -rw-r--r-- | libjava/java/lang/ClassLoader.java | 32 | 
2 files changed, 21 insertions, 16 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 59c6d972e2d..f9a7617d7e3 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,10 @@  2005-04-04  Tom Tromey  <tromey@redhat.com> +	* java/lang/ClassLoader.java (loadClass): Resolve class even if +	it was already found. + +2005-04-04  Tom Tromey  <tromey@redhat.com> +  	* java/net/URL.java (DEFAULT_SEARCH_PATH): Added  	org.metastatic.jessie. diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java index f2beaac97f6..db68e60ba8d 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;  | 

