JDK-6869244 : REGRESSION: NoClassDefFoundError exception throws with signed apps
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 6u15,6u16
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2009-08-06
  • Updated: 2010-11-04
  • Resolved: 2009-12-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
6u18 b01Fixed 7Fixed
Related Reports
Duplicate :  
Relates :  
J2SE Version (please include all output from java -version flag):

java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) Client VM (build 14.1-b02, mixed mode, sharing)

Does this problem occur on J2SE 1.4.x or 5.0.x ?  Yes / No (pick one)

Works fine in JDK 6.0_12 (Did not check 13 or 14)

Operating System Configuration Information (be specific):
Windows Vista Business SP1

Hardware Configuration Information (be specific):
HP Pavillion dv9000
Windows Vista Business SP2 32 bit
Intel Core 2 Duo T9300

Bug Description:
Java Web Start 1.6.0_15
Using JRE version 1.4.2_17-b06 Java HotSpot(TM) Client VM
User home directory = C:\Users\mac
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
m:   print memory usage
o:   trigger logging
p:   reload proxy configuration
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
0-5: set trace level to <n>
Reading certificates from 3574 http://builder.dev.donnell.com:8940/webstart/ViewerLauncher.builder.dev.donnell.com.jar | C:\Users\mac\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\27\2c9b981b-36f95399.idx
Reading certificates from 3485 http://builder.dev.donnell.com:8940/JViewer/lib/dsi/JavaViewer.jar | C:\Users\mac\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\51\2749573-72604bb3.idx
#### Java Web Start Error:

#### java.lang.NoClassDefFoundError: java/security/CodeSigner

java.lang.NoClassDefFoundError: java/security/CodeSigner
	at com.sun.javaws.security.SigningInfo.setContains(Unknown Source)
	at com.sun.javaws.security.SigningInfo.overlapChainLists(Unknown Source)
	at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
	at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.launch(Unknown Source)
	at com.sun.javaws.Main.launchApp(Unknown Source)
	at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
	at com.sun.javaws.Main$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Steps to Reproduce (be specific):

An old version of our app wants to use JRE 1.4.  The JNLP file requests to
be run with a 1.4 JRE.  However, if Java 6.0_15 is installed, the 6.0_15
version of webstart downloads the application and launches the app with an
installed version of 1.4.  This is evident from:
      Java Web Start 1.6.0_15
      Using JRE version 1.4.2_17-b06 Java HotSpot(TM) Client VM

The error comes from: (which is clearly a Sun class)
	at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown

Run this with using the webstart in 6.0_12 and it works perfectly.

appg that does not work has a signed version of the JNLP file (meaning
that there is a copy of the JNLP file in the main signed jar file).  If
take the JNLP file out of the jar file, it works.

PUBLIC COMMENTS This bug has been fixed in 6u18 b01, I got confirmation from customer who reported this bug originally, the bug has been fixed,therefore I changed the substatus to "Verified".

EVALUATION The codeSigner class is only existed in JRE 1.5 and later, modify the code to use this class in JRE 1.5 and later.