diff options
4 files changed, 25 insertions, 5 deletions
@@ -1,3 +1,16 @@ +2013-01-03 Adam Domurad <[email protected]> + + Fix breakage in unit test CodeBaseClassLoaderTest.testParentClassLoaderIsAskedForClassesApplication + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java + (CodeBaseClassLoader#findClassNonRecursive): New, call into + URLClassLoader#findClass + (CodeBaseClassLoader#findClass): Delegate JNLPClassLoader#findClass + (JNLPClassLoader#findClass): Call CodeBaseClassLoader#findClassNonRecursive + * tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java + (init): Add applet finish message. + * tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java + (testClassInAppletFolder): Close quickly on applet finish message. + 2013-01-02 Jiri Vanek <[email protected]> Fixed unittest for InformationElement. 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(). * diff --git a/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java b/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java index 2154d5d..fc332b4 100644 --- a/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java +++ b/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java @@ -42,6 +42,7 @@ public class AppletReferenceOutOfJar extends AppletReferenceInSameJar { Referenced outOfJarReference = new Referenced(); public void init() { - System.out.println("My simple applet is running."); + System.out.println("My simple applet is running."); + System.out.println("*** APPLET FINISHED ***"); } } diff --git a/tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java b/tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java index 30d0421..19cbdc9 100644 --- a/tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java +++ b/tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java @@ -36,6 +36,7 @@ exception statement from your version. */ import net.sourceforge.jnlp.ProcessResult; +import net.sourceforge.jnlp.ServerAccess.AutoClose; import net.sourceforge.jnlp.annotations.Bug; import net.sourceforge.jnlp.annotations.NeedsDisplay; import net.sourceforge.jnlp.annotations.TestInBrowsers; @@ -55,7 +56,7 @@ public class AppletExtendsFromOutsideJarTests extends BrowserTest { @TestInBrowsers(testIn = { Browsers.one }) @Bug(id = "PR920") public void testClassInAppletFolder() throws Exception { - ProcessResult pr = server.executeBrowser("/AppletExtendsFromOutsideJar.html"); + ProcessResult pr = server.executeBrowser("/AppletExtendsFromOutsideJar.html", AutoClose.CLOSE_ON_BOTH); Assert.assertFalse("Linkage error should not occur but did!", pr.stderr.contains(LINKAGE_ERROR_OCCURRENCE)); Assert.assertTrue("Expected '" + APPLET_RUNNING + "', stdout was: " + pr.stdout, pr.stdout.contains(APPLET_RUNNING)); |