Posted by soltesza
on July 21, 2009 at 4:07 AM PDT
I just bumped into a seemingly horrible Webstart issue.
The report I sent to Sun is below. Let me know if you have a workaround.
I hope I am wrong and the problem is in my environment but I don't think this is the case because earlier JREs still do the job right.
A DESCRIPTION OF THE PROBLEM :
With JRE 6u14, my Webstart application installation works but JARs updated on the server are not downloaded (ignored completely) so the client application is not updated. The application is simply started with the old JARs without warnings or any sign of the problem.
My Webstart application's JNLP uses the following update settings:
This means that all resources should always be checked before the application starts and if a JAR is updated on the server (it has a newer timestamp), the JAR should be downloaded and placed in the cache. I have tried the timeout setting as well but it doesn't work either.
The JARs in question are referenced by a JNLP Component which is embedded into a JNLP Application file. This should make no difference compared to a JAR directly referenced by a JNLP Application descriptor.
Currently, in JRE 6u14, this seems to be completely broken. Webstart doesn't notice the updated JAR on the server and it doesn't download it.
As a safety-check, I installed JRE 6u11 onto an other Windows machine and tested the behaviour from the same Webstart web server.
JRE 6u11 works as expected. If I update the JAR on the web server and restart the application, Webstart immediately notices the new JAR and downloads it. This proves that there is no timestamp problem on the web server.
I checked the timestamps on the web server manually and they are correct. The webstart client and the server practically doesn't have any time difference (both are attached to internet time servers).
FULL JAVA VERSION :
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)
OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
Also reproduced on Ubuntu Linux 9.04 Jaunty
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Any webstart application should be possible to use for reproduction:
- Make sure the JNLP has proper update settings (always)
- Install the webstart app, close it
- Update one of the JARs on the server, check that the timestamp is newer
- Start the previously installed webstart app
EXPECTED VERSUS ACTUAL BEHAVIOR :
Webstart should download the updated JAR
No download happens, Webstart starts the application with the OLD JAR
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
No workaround, practically makes Webstart unusable.
I have no idea how this bug made it to u14, there should be an automatic test case for this.
Please, Sun, fix this bug because all of the already installed Webstart applications are now frozen, it is impossible to update them on the client (if the user installs u14 but this can happen easily with JRE updates).
We have a lot of clients using our Webstart applications and some of them installed JRE 6u14 (a growing number).