aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java11
-rw-r--r--tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java3
-rw-r--r--tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java3
4 files changed, 25 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index ad6b421..2f2c2ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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));