United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6656260 plugin2: Client JVM crashes when trying to load applet using an older JVM version than 6u10
6656260 : plugin2: Client JVM crashes when trying to load applet using an older JVM version than 6u10

Details
Type:
Bug
Submit Date:
2008-01-29
Status:
Closed
Updated Date:
2010-09-08
Project Name:
JDK
Resolved Date:
2008-02-21
Component:
deploy
OS:
windows_xp
Sub-Component:
plugin
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
6u10
Fixed Versions:
6u10

Related Reports

Sub Tasks

Description
On a windows XP machine, 
- install JREs 5u13 and 6u10
- open IE browser
- load a 5.0u13 static versioning applet into the browser

The client JVM crashes with a hs_err log as the one in the attachment.

The server (browser) side tracing shows that the getJavaPluginSettings() method cannot be found.

                                    

Comments
SUGGESTED FIX

http://sa.sfbay.sun.com/projects/deployment_data/6u10/6656260.0
                                     
2008-01-30
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.
                                     
2008-01-29
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.
                                     
2008-01-29
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.
                                     
2008-01-29
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.
                                     
2008-01-29



Hardware and Software, Engineered to Work Together