JDK-6921856 : JNLP Desktop Link Fails with Cache Exception after JWS app update
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 6u18
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2010-02-01
  • Updated: 2010-04-04
  • Resolved: 2010-02-02
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
1.6.0_18-b07

ADDITIONAL OS VERSION INFORMATION :
Windows XP

A DESCRIPTION OF THE PROBLEM :
When clicking the desktop link for an updated JWS app, the update fails with the following cache error:

CouldNotLoadArgumentException[ Could not load file/URL specified: C:\Documents and Settings\troy\Application Data\Sun\Java\Deployment\cache\6.0\48\14282670-605915d0]
	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)

In instances where the JNLP is dynamically generated (via JSP for example), the above error is produced for the second attempt to access the application via the desktop link. In this scenario, we found that the server was returning a 200 status code instead of the expected 304 status code in response to the IF-Mondified-Since request. Adding the 304 response header reduces the exception to only follow actually updates (where the Last-Modified value changes).


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :

1) Via browser, download a JNLP application
2) Update the application or otherwise modify the JNLP to cause the JNLP response Last-Modified header to change
3) Click the desktop link for the application

JNLP attributes of interest:
- spec="1.5+"
- j2se element includes VM args - <j2se version="1.5+" initial-heap-size="128m" max-heap-size="384m" />
- offline-allowed




EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -

1) JWS should update the JNLP in cache and recreate the desktop link.

2) Application should start without failure
ACTUAL -

  From the desktop link, the application update fails with the cache exception provided. The desktop link can be restored by updating the application from the original url via the browser.

ERROR MESSAGES/STACK TRACES THAT OCCUR :

CouldNotLoadArgumentException[ Could not load file/URL specified: C:\Documents and Settings\troy\Application Data\Sun\Java\Deployment\cache\6.0\48\14282670-605915d0]
	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)

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
Source code not available.

Will supply URL to JNLP application upon request.
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
Re-download/install the application from the browser will fix the desktop link.

Communicating this workaround to several thousand users is not at all practical.

SUPPORT :
YES

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