JDK-6502189 : applet hang when try to reload a page with the applets in a frame
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 5.0u10
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows
  • CPU: x86
  • Submitted: 2006-12-07
  • Updated: 2010-04-04
  • Resolved: 2007-03-27
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.
Other JDK 6 JDK 7
5.0u12 b02Fixed 6u2Fixed 7Fixed
Description
This is for escalation #1-20467020, radiance case #64990026, attention Ragini Prasad.

Customer Starwood reported the following problem:

We were able to reproduce the error using sample applets that ship with Sun���s JDK. We modified the applets to perform tasks that emulate what our application does, mainly providing a callback via live connect to a javascript function when an applet is started. All worked well, until we introduced frames into the mix. When we try to reload a page with the applets in a frame, it hangs, just like our application.

Attached are the files necessary to reproduce the error. If you view test1.html or test2.html by itself using IE 7, you can reload without a problem. However, if you view test.html which uses a frameset to display both test1.html and test2.html, you cannot reload the individual frames. It locks up similar to how our application locks up.
 
However, if you modify the javascript files (*.js) so that instead of writing out the applet control directly, write out using the setTimeout function, you are able to reload the individual frames.


To reproduce:

1. install Tomcat
2. unzip the attachment multiAppletTest2.zip
3. deploy the test case mutliAppletTest2 into Tomcat's webapps directory
4. execute the test by running the URL
   http://localhost:8080/multiAppletTest2/test.html

Comments
EVALUATION In IE7 the calling sequence from the browser to ActiveX control has changed. There is an additional query with method "unselectable" ATL: CAxControl::GetIDsOfNames, Method: unselectable, Applet Status:>>> 0 As in SUN JRE plugin we do not implement this method return failure on this query solves the problem. // IE7 has been changed to forward the "unselectable" property on to the active ActiveX object upon // setting focus. To avoid hang in the AtlWaitWithMessageLoop, E_FAIL will be returned. if (lstrcmpi(OLE2A(rgszNames[0]), "unselectable") == 0) { rgdispid[0] = DISP_E_UNKNOWNNAME; return E_FAIL; }
26-01-2007