[rfc][icedtea-web] External main-class fix

Andrew Azores aazores at redhat.com
Wed Jan 8 13:57:14 PST 2014


Jiri found a flaw in the fix for PR1513, which allows applets to run 
when their main-class is not in a JAR, but is still available to load 
from the codebase. The previous fix simply didn't throw a 
LaunchException when the main-class could not be found in a JAR, and 
instead displayed a warning about not all of the code being signed. 
However, this warning could still appear even if no classes or JARs 
could be loaded at all! This patch causes the ClassLoader to not be so 
optimistic about finding an external main-class - it actually checks for 
it first, and if it still can't be found on the codebase after searching 
all JARs, then a LaunchException is thrown. If it can be found, then the 
applet launch proceeds as normal at this step.

Additionally, checkNotAllSignedWithUser can only be called once now in 
initializeResources. Previously, it could be called both due to an 
external main-class as well as mixed signing states of JARs in the 
applet - so if you had one signed JAR, one unsigned JAR, and an external 
main-class, you would be prompted twice about the mixed signing, as well 
as about trusting the signer of the signed JAR. Craziness. Now, the 
prompt about mixed signing should only appear once.

* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: 
(initializeResources) perform search for main-class when suspected to be 
external. Only show mixed code signing prompt once during 
initialization. (checkNotAllSignedWithUser) refactor to remove local 
variable (promptUser)


Andrew A

-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr1513-fix.patch
Type: text/x-patch
Size: 3272 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20140108/849c0f86/pr1513-fix.patch 

More information about the distro-pkg-dev mailing list