-
Bug
-
Resolution: Fixed
-
P3
-
6u22, 7
-
b03
-
x86
-
windows_xp, windows_7
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2214665 | 8 | Andy Herrick | P3 | Closed | Fixed | b12 |
JDK-2213892 | 6u30 | Nikolay Gorshkov | P2 | Closed | Fixed | b08 |
JDK-2213865 | 6u29-rev | Nikolay Gorshkov | P2 | Resolved | Fixed | b20 |
JDK-2212190 | 6u27-rev | Nikolay Gorshkov | P2 | Resolved | Fixed | b22 |
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [versio 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
If there is a desktop shortcut to a JNLP application, the old JNLP file is used when run from the desktop shortcut even after the JNLP file is updated at the server. (This happens probably only if JWS cache path contains whitespace)
According to http://www.coderanch.com/t/528570/JNLP-Web-Start/java/Do-jnlp-file-updates-itself#2455103 this problem seems to happen only when the JWS cache path contains whitespace.
According to that discussion thread, the last Java version before this problem occurred was 1.6.21.
REGRESSION. Last worked in version 6
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Note that in my example I have a local distribution and the change done to the JNLP file is changing the codebase. Anyway, with us, the problem occurs also with
i) other kind of changes (like adding a new jar needed by the application etc)
ii) when the application is distributed from a HTTP server (the actual usage where our problem is)
Actual step-by-step example:
1. Have a JNLP file with jar used (in my example at "D:\jnlp-test")
2. Start the application from the JNLP file (allow creating desktop shortcut)
3. Modify the JNLP file.
- In my example, update the codebase to "D:\jnlp-test2". Also copy the JNLP and the jar to that directory.
4. Run the application from the desktop shortcut
4.1 - tässä vaiheessa pitäisi cachen JNLP olla päivittynyt
5. Poistaan D:\jnlp-test -hakemisto
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
a) After step 4 I expect that the cached JNLP application (viewer from Control Panel -> Java -> ...) should be updated to contain the new content (new codebase)
b) At step 5 my application should work fine from the new distribution location
ACTUAL -
a) My cached JNLP file still contains the old content (at my example codebase="file:/D:/jnlp-test/")
b) The problem crashes while trying to access the old location
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Unable to launch the application
Error: D:\jnlp-test\DynamicTreeDemo.jar (Määritettyä polkua ei löydy)
--------------------------
(Note that The error message is "The path can't be found" in Finnish)
And:
--------------------------
java.io.FileNotFoundException: D:\jnlp-test\DynamicTreeDemo.jar (Määritettyä polkua ei löydy)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
at com.sun.deploy.net.BasicHttpRequest.doRequest(Unknown Source)
at com.sun.deploy.net.BasicHttpRequest.doGetRequestEX(Unknown Source)
at com.sun.deploy.net.DownloadEngine.isUpdateAvailable(Unknown Source)
at com.sun.deploy.net.DownloadEngine.isUpdateAvailable(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
I am using the Dynamic Tree demo jar from
http://download.oracle.com/javase/tutorial/deployment/webstart/deploying.html ->
http://download.oracle.com/javase/tutorialJWS/deployment/webstart/ex6/webstart_ComponentArch_DynamicTreeDemo/DynamicTreeDemo.jar
My original JNLP file (step 1 & 2):
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.6+"
codebase="file:/D:/jnlp-test/"
href="dynamictree-webstart.jnlp">
<information>
<title>Dynamic Tree Demo</title>
<vendor>Dynamic Team</vendor>
<shortcut online="true">
<desktop/>
</shortcut>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.6+"
href="http://java.sun.com/products/autodl/j2se"/>
<jar href="DynamicTreeDemo.jar" main="true" />
</resources>
<application-desc
main-class="webstartComponentArch.DynamicTreeApplication">
</application-desc>
</jnlp>
My modified JNLP file (step 3, codebase changed):
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.6+"
codebase="file:/D:/jnlp-test2/"
href="dynamictree-webstart.jnlp">
<information>
<title>Dynamic Tree Demo</title>
<vendor>Dynamic Team</vendor>
<shortcut online="true">
<desktop/>
</shortcut>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.6+"
href="http://java.sun.com/products/autodl/j2se"/>
<jar href="DynamicTreeDemo.jar" main="true" />
</resources>
<application-desc
main-class="webstartComponentArch.DynamicTreeApplication">
</application-desc>
</jnlp>
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
According to http://www.coderanch.com/t/528570/JNLP-Web-Start/java/Do-jnlp-file-updates-itself#2455103 this problem seems to happen only when the JWS cache path contains whitespace so changing the cache path should work.
(Unfortunately this makes the "easy installation" with JWS just a dream)
Release Regression From : 6u21
The above release value was the last known release where this
bug was not reproducible. Since then there has been a regression.
- backported by
-
JDK-2212190 JWS (started from desktop shorcut) doesn't update updated JNLP file from server
- Resolved
-
JDK-2213865 JWS (started from desktop shorcut) doesn't update updated JNLP file from server
- Resolved
-
JDK-2213892 JWS (started from desktop shorcut) doesn't update updated JNLP file from server
- Closed
-
JDK-2214665 JWS (started from desktop shorcut) doesn't update updated JNLP file from server
- Closed
- duplicates
-
JDK-7062688 Java Web Start app re-launched from shortcut icon does not load updated jar files
- Closed
-
JDK-7116999 Update JNLP of newer server file is not performed.
- Closed