JDK-4391903 : The javaws hangs on Windows client.
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: jaws-1.0,1.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic,windows_nt
  • CPU: generic,x86
  • Submitted: 2000-11-22
  • Updated: 2002-05-09
  • Resolved: 2002-05-09
Related Reports
Duplicate :  
Relates :  
Description
The root of the problem is concurrency writing to the cache directory
files with same names.

to reproduce the problem use the standard example
draw.jnlp

#run javaws  
WIN> javaws.exe  http://matmech:8080/draw.jnlp
# quickly change modified time for draw.jar and  draw.jnlp
matmech> touch draw.jar draw.jnlp
# run quickly javaws with the same url one more time
WIN>javaws.exe  http://matmech:8080/draw.jnlp

If your http server do not generate Last-Modified field, or generate it incorrectly you can only run jnlp client two times.
Some times one of the running applications hangs up,
some times generate error message:

An error occurred while launching/running the application.

Title: Draw
Vendor: Sun Microsystems, Inc.
Category: Download Error

Unable to load resource: http://matmech:8080/draw.jar

java.io.IOException: rename failed in cache

	at com.sun.javaws.cache.DiskCache.insertEntry(DiskCache.java:211)

	at com.sun.javaws.cache.DiskCache.insertResource(DiskCache.java:197)

	at com.sun.javaws.cache.DownloadProtocol$RetrieveAction.actionDownload(DownloadProtocol.java:463)

	at com.sun.javaws.cache.DownloadProtocol.doDownload(DownloadProtocol.java:609)

	at com.sun.javaws.cache.DownloadProtocol.getResource(DownloadProtocol.java:762)

	at com.sun.javaws.LaunchDownload.downloadJarFiles(LaunchDownload.java:563)

	at com.sun.javaws.LaunchDownload.downloadEagerorAll(LaunchDownload.java:469)

	at com.sun.javaws.Launcher.downloadResources(Launcher.java:601)

	at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:257)

	at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:151)

	at com.sun.javaws.Launcher.<init>(Launcher.java:113)

	at com.sun.javaws.Main.main(Main.java:153)

Comments
EVALUATION This is due the fact that the JNLPProcess was not being run hence the waitFor was not being used correctly, closing this as not a bug. ----------------------- The bug descrition says nothing about JNLPProcess, JNLPLauncher and JNLP TCK at all. The problem can be reproduced by using standard jnlp file examples and standart http server(See bug description for more details) So the close reson looks strange, I'm reopening it back. ###@###.### 2000-11-30 ------------------------------------------------------------------------- I am closing this bug because this is the expected behaviour of Java Web Start. First of all, when we are running an application, if we touch the jar, JavaWS should download the jar file again since it is updated. But since the application is running and the jar file is open, if we try to open it, write it and run the application, we should failed since the other application had a lock on it and is using the jar. So this should fail. thomas.v.ng@east 2001-03-16 Dead lock is not a correct behavior for any application, the JaWS should check such conditions and at least warn a user like showing a dialog box "An application update is available. The update will be downloaded the next time the application is launched.", So if JaWS shows such dialog in this case, and run an old version it will be a fix for this bug. ###@###.### 2001-03-20
20-03-2001