aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java')
-rw-r--r--netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java11
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().
*