Mercurial > hg > release > icedtea-web-1.4
view tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/Makefile @ 762:29c1c1f92e09
Resolve multiple-applet deadlock issue in JNLPClassLoader
New lock used for synchronizing JNLPClassLoader#loadClass(String) to avoid
deadlock condition when multiple applets are being loaded simultaneously.
Regression test included.
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (loadClassLock)
private member for locking of loadClass method. (loadClass) synchronizes
using new lock rather than instance intrinsic lock to avoid RH976833
deadlock
* tests/reproducers/custom/JNLPClassLoaderDeadlock/testcases/JNLPClassLoaderDeadlockTest.java:
new test for multiple applet deadlock condition
* tests/reproducers/custom/JNLPClassLoaderDeadlock/resources/JNLPClassLoaderDeadlock.html:
same
* tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_1.java:
same
* tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/JNLPClassLoaderDeadlock_2.java:
same
* tests/reproducers/custom/JNLPClassLoaderDeadlock/srcs/Makefile: same
author | Andrew Azores <aazores@redhat.com> |
---|---|
date | Thu, 17 Oct 2013 11:09:51 -0400 |
parents | |
children |
line wrap: on
line source
TESTNAME=JNLPClassLoaderDeadlock SRC_FILES=JNLPClassLoaderDeadlock_1.java JNLPClassLoaderDeadlock_2.java RESOURCE_FILES=JNLPClassLoaderDeadlock.html ENTRYPOINT_CLASSES=JNLPClassLoaderDeadlock_1 JNLPClassLoaderDeadlock_2 JAVAC_CLASSPATH=$(TEST_EXTENSIONS_DIR):$(NETX_DIR)/lib/classes.jar JAVAC=$(BOOT_DIR)/bin/javac JAR=$(BOOT_DIR)/bin/jar TMPDIR:=$(shell mktemp -d) prepare-reproducer: echo PREPARING REPRODUCER $(TESTNAME) $(JAVAC) -d $(TMPDIR) -classpath $(JAVAC_CLASSPATH) $(SRC_FILES) cd ../resources; \ cp $(RESOURCE_FILES) $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ cd -; \ for CLASS in $(ENTRYPOINT_CLASSES); \ do \ mv $(TMPDIR)/"$$CLASS.class" $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \ done; \ echo PREPARED REPRODUCER $(TESTNAME), removing $(TMPDIR) rm -rf $(TMPDIR) clean-reproducer: echo NOTHING TO CLEAN FOR $(TESTNAME)