JDK-2146749 : Intermittent class load errors when Java 1.6 methods are called from javascript
  • Type: Backport
  • Backport of: JDK-6521732
  • Component: deploy
  • Sub-Component: plugin
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2007-02-09
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u2Fixed 7 b13Fixed
Comments
EVALUATION For JPI Solaris/Linux, the PluginFactory on the browser process identify its generated PluginInstance with the applet running on the java_vm process by an "index". This index is supposedly reused when the PluginInstance is destroyed (when applet is destroyed). This applet intermittently load problem is related to mismatch of PluginInstance to be destroyed when the applet destroy request (triggered by page refresh) is received too late, i.e, after a new PluginInstance has already been created. When that happens, instead of destroying the old PluginInstance of the previously loaded applet, the newly created instance is disposed, preventing any LiveConnect or communication between the browser and the applet. This problem is in JPI code all along but the changes from 1.5 to 1.6 (and beyond) probably made the problem surface more easily now than compared to running with 1.5. The fix is to mutex this "index", lock it at the moment a new PluginInstance is created and only release its lock after applet state changed to APPLET_DESTROY.
09-02-2007