diff options
Diffstat (limited to 'netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java')
-rw-r--r-- | netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java index e487cb6..abdba94 100644 --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java @@ -1577,8 +1577,8 @@ public class JNLPClassLoader extends URLClassLoader { // Try codebase loader if (codeBaseLoader != null) - return codeBaseLoader.findClass(name); - + return codeBaseLoader.findClass(name, true); + // All else failed. Throw CNFE throw new ClassNotFoundException(name); } @@ -2060,6 +2060,18 @@ public class JNLPClassLoader extends URLClassLoader { @Override public Class<?> findClass(String name) throws ClassNotFoundException { + return findClass(name, false); + } + + public Class<?> findClass(String name, boolean recursivelyInvoked) throws ClassNotFoundException { + + if (!recursivelyInvoked) { + try { + return parentJNLPClassLoader.findClass(name); + } catch (ClassNotFoundException cnfe) { + // continue + } + } // If we have searched this path before, don't try again if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) |