JDK-6727949 : disabling tag support should not affect applets using tag
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 6u10
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2008-07-21
  • Updated: 2010-09-08
  • Resolved: 2008-10-01
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
6u10 b31Fixed
Description
This problem has been reported in the java.net plugin's forum:
http://forums.java.net/jive/thread.jspa?threadID=44150&tstart=0

To reproduce the problem:
- install JRE 6u10 - the next-generation Java Plug-in is the default
- open the Internet Explorer's Internet Options "Advanced" panel
- uncheck the following checkbox
        Use JRE 1.6.0_10 for <applet> (requires restart)
- run an applet with an <object> tag, such as
      http://java.sun.com/products/plugin/1.5.0/demos/plugin/applets/ArcTest/example1.html

The applet won't load.
However, the above steps works with the classic Java Plug-in.

Comments
SUGGESTED FIX ------- DllServer.cpp ------- *** //C/tmp/sccs.001000 Mon Jul 21 18:21:25 2008 --- DllServer.cpp Mon Jul 21 18:17:15 2008 *************** *** 476,488 **** // before returning to the caller. HRESULT hr = CLASS_E_CLASSNOTAVAILABLE; if (FAILED(IsJavaPluginDefaultVM())) { ! hr = LoadMSJavaVM(riid, ppvObjOut); } else { ! hr = _Module.GetClassObject(CLSID_JavaPlugin, riid, ppvObjOut); ! if (SUCCEEDED(hr)) { ! CAxControl::SetVersionString(rclsid); ! } } return hr; --- 476,503 ---- // before returning to the caller. HRESULT hr = CLASS_E_CLASSNOTAVAILABLE; if (FAILED(IsJavaPluginDefaultVM())) { ! ! if (IsEqualCLSID(rclsid, CLSID_JavaPlugin) || ! IsEqualCLSID(rclsid, CLSID_NEW_DYNAMIC) || ! ((rclsid.Data1 == 0xCAFEEFAC) && (rclsid.Data4[7] != 0xBB)) ) { ! hr = _Module.GetClassObject(CLSID_JavaPlugin, riid, ppvObjOut); ! if (SUCCEEDED(hr)) { ! CAxControl::SetVersionString(rclsid); ! } ! } else { ! hr = LoadMSJavaVM(riid, ppvObjOut); ! } } else { ! hr = _Module.GetClassObject(CLSID_JavaPlugin, riid, ppvObjOut); ! if (SUCCEEDED(hr)) { ! CAxControl::SetVersionString(rclsid); ! } } return hr;
22-07-2008

EVALUATION When disabling the <applet> tag support through the IE's Internet Properties "Advanced" tab, we're basically setting the following registry key to 0 HKLM\\Software\\JavaSoft\\Java Plug-in\\UseJava2IExplorer In the entry point of the jp2iexp.dll (DllGetClassObject), we currently are checking if the above registry key isn't set, we'll try to invoke MSVM without taking into account whether there's an incoming clsid as in the case when an applet is using the <object> tag. A potential fix is in additional to checking the above registry key, we should also take into account the incoming clsid before inovking MSVM. Care should be taken not to honor the redirected clsid from the <applet> tag - the static versioning clsid ending with 0xBB.
22-07-2008