JDK-6957031 : Webstart fails to launch self-signed jar when java cache is disabled
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 6u20
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux
  • CPU: x86
  • Submitted: 2010-05-28
  • Updated: 2010-06-01
  • Resolved: 2010-06-01
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)

ADDITIONAL OS VERSION INFORMATION :
Linux 2.6.27-17-generic #1 SMP Wed Jan 27 23:14:44 UTC 2010 i686 GNU/Linux
This is not OS-specific and has been reported on Windows also.

A DESCRIPTION OF THE PROBLEM :
Java webstart fails to start webstart application containing self-signed jars when java cache is disabled.
This seems to have been working prior to 1.6.0_19.

More discussion on the matter on java forum:
http://forums.sun.com/thread.jspa?threadID=5434022

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Execute javaws -viewer from command line.
2. Disable java cache by deselecting "Keep temporary files on my computer" on general/temporary internet files/settings.
3. Open a browser and open a url pointing to webstart application containing self-signed jars for example
http://dev.lds.org/maven-sites/stack/3.0-dev/module.html/starter/stack-starter/jnlp/StackStarter.jnlp

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Webstart application should start normally.
ACTUAL -
Webstart throws nullpointer exception after downloading jar files and attempting to start application.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.NullPointerException
	at java.util.jar.JarVerifier.mapSignersToCodeSource(JarVerifier.java:497)
	at java.util.jar.JarVerifier.mapSignersToCodeSources(JarVerifier.java:509)
	at java.util.jar.JarVerifier.getCodeSources(JarVerifier.java:827)
	at java.util.jar.JarFile.getCodeSources(JarFile.java:622)
	at java.util.jar.JavaUtilJarAccessImpl.getCodeSources(JavaUtilJarAccessImpl.java:25)
	at com.sun.deploy.cache.DeployCacheJarAccessImpl.getCodeSources(DeployCacheJarAccessImpl.java:60)
	at com.sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(SigningInfo.java:382)
	at com.sun.javaws.security.SigningInfo.check(SigningInfo.java:291)
	at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(LaunchDownload.java:1498)
	at com.sun.javaws.LaunchDownload.checkSignedResources(LaunchDownload.java:1268)
	at com.sun.javaws.Launcher.prepareResources(Launcher.java:1206)
	at com.sun.javaws.Launcher.prepareAllResources(Launcher.java:618)
	at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:326)
	at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:198)
	at com.sun.javaws.Launcher.launch(Launcher.java:115)
	at com.sun.javaws.Main.launchApp(Main.java:412)
	at com.sun.javaws.Main.continueInSecureThread(Main.java:249)
	at com.sun.javaws.Main$1.run(Main.java:111)
	at java.lang.Thread.run(Thread.java:619)


REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
Enable java cache.

Release Regression From : 6u19
The above release value was the last known release where this 
bug was not reproducible. Since then there has been a regression.