SUGGESTED FIX
http://sa.sfbay.sun.com/projects/deployment_data/6u10/6656260.0
|
|
|
EVALUATION
The getJavaPluginSettings() and getJqsSettings() methods in Config are only available with 6u10. To avoid the problem, we should check if java version is 6u10 or higher before calling those methods.
|
|
|
EVALUATION
The above evaluation is incorrect. The Config classes should be coming from the 6u10 deploy.jar regardless of what JVM version we are running on, so all of their associated methods should always be available. The attached client JVM crash is probably caused by the server side not fully setting up the shared memory segment. The root cause of this problem is something else. More investigation is needed.
|
|
|
EVALUATION
Attaching the verbose output (verbose.txt) from the dos console.
From the hs err log, it looks like the crash is in the HeartBeatThread.
Adding a check for JRE version and calls getJavaPluginSettings() and getJqsSettings() only if the version is 1.6.0_10 or higher seems to have suppressed the problem.
|
|
|
EVALUATION
The root problem is that the Config class is referring directly to the sun.jkernel.DownloadManager class from the core JRE, and this class is not available in pre-6u10 JREs. This could potentially break Java Web Start as well.
To fix this problem more generally, a new method isJREComplete() can be added to the Config class which looks like:
public boolean isJREComplete() {
try {
return sun.jkernel.DownloadManager.isJREComplete();
} catch (Error e) {
// The DownloadManager isn't present on earlier JREs
return true;
}
}
and this can be called from getJqsSettings() as well as getJavaPluginSettings() -- if doing so is actually relevant.
|
|
|