I have been investigating bug #4393792: Downloading new version of running
app fails, and I have come to the conculsion that it is just not true.
1.) All of the paths thru DiskCache.java, except for deleteEntry throw up
an IOException (which is later wrapped as a JNLPException) if the operation
is not a success. In particular, insertEntry() which does the actual
rename of the temp file to the correct cache file name, explicitly throws
such an exception if the rename fails.
2.) I ran a simple test on NT (renaming t1.jar and t2.jar to T.jar and
running both) which clearly shows jar files are not left open simply because
they are "running" (java opens, reads, and closes them as expected). This
may not be the case for native library dlls in jar files, but certainly
is for classes.
3.) If any SecurityException, JNLPException, or IOException is thrown whil
downloading or installing, LaunchErrorDialog.show() will be called. this
does a System.exit(-1) so we could never get to the code that Resets
force update, and, as the description of this bug says:
"If I then close the app and click on it again, Java Web Start thinks it
has the latest version, but actually runs the older version."
Since noone has yet been able to provide example of how to reproduce, I am
downgrading this to P4 - if example is provided will upgrade and escallate.
New cache reorg in 1.2 should allow you to dowwnload running app.