diff options
Diffstat (limited to 'netx/net/sourceforge')
-rw-r--r-- | netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java index 60d4193..26e0b5d 100644 --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java @@ -1704,7 +1704,7 @@ public class JNLPClassLoader extends URLClassLoader { // Try codebase loader if (codeBaseLoader != null) - return codeBaseLoader.findClass(name); + return codeBaseLoader.findClassNonRecursive(name); // All else failed. Throw CNFE throw new ClassNotFoundException(name); @@ -2287,8 +2287,7 @@ public class JNLPClassLoader extends URLClassLoader { super.addURL(url); } - @Override - public Class<?> findClass(String name) throws ClassNotFoundException { + Class<?> findClassNonRecursive(String name) throws ClassNotFoundException { // If we have searched this path before, don't try again if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) throw new ClassNotFoundException(name); @@ -2310,6 +2309,12 @@ public class JNLPClassLoader extends URLClassLoader { } } + @Override + public Class<?> findClass(String name) throws ClassNotFoundException { + // Calls JNLPClassLoader#findClass which may call into this.findClassNonRecursive + return getParentJNLPClassLoader().findClass(name); + } + /** * Returns the output of super.findLoadedClass(). * |