EVALUATION
Problem: Customer (cobaltgroup.com) reported problem in 6u12.
Customer's JNLP application cannot be started from desktop shortcut.
Customer's JNLP file has max-heap-size set to a customzied value. Also, customer server is always return 200 (for whatever reason), so everytime we launch, cached JNLP is always updated.
In 6u12, when we launch from shortcut, a relaunch is triggered in java code (Problem 1), because native code did not set the max-heap-size when launching java. And when we re-launch in java code, we relaunch with the original cached JNLP, which doesn't exists anymore, because we updated the cached JNLP. (Problem 2). This caused the desktop shortcut launch problem seen by the customer.
Fix:
For Problem 1, when we launch from desktop shortcut, -localfile is used. This cause copyTmp to be false, and therefore bypassed the copy of temp JNLP file in native code, but it also bypassed the parsing of the JNLP file all together. That's why native code didn't launch with the max-heap-size args.
If -localfile is used, we should by pass the copy of the temp JNLP file, but we still need the native code to parse the cached JNLP file.
For problem 2, after we updated and got the final launchDesc JNLP file, and after we removed the temp JNLP (if necessary), we should update args[0], in case we need to re-launch.
|