JDK-8058474 : Applet is not started in IE on dynamic insertion into a web page
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 7u67,8u25,9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_7
  • CPU: generic
  • Submitted: 2014-09-15
  • Updated: 2015-09-29
  • Resolved: 2015-01-22
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 7 JDK 8 JDK 9
7u85Fixed 8u60Fixed 9 b52Fixed
Description
FULL PRODUCT VERSION :
JDK 9 b43, JDK 8u25 b18, JDK 7u67 b01

ADDITIONAL OS VERSION INFORMATION :
MS Windows 7 OS

A DESCRIPTION OF THE PROBLEM :
If applets are dynamically inserted into a web page by addition of "APPLET" tag to the document of the page using JavaScript, sometimes the applet is not started in Internet Explorer (IE) 11, IE 9, and "java.lang.IllegalStateException" is printed in Java Console.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Upload HTML and JAR files from the attached archive file "AppletIsNotStartedOnDynInsIntoPage.zip" with the test case into a directory on a web server.
2. Install the testable JRE 9, or JRE 8, or JRE 7.
3. Go to "Java Control Panel -> Security -> Edit Site List...". In the shown dialog add URL of the web server's directory with the test case from the step #1 to the Exception Site List and click "OK".

For example: "http://10.162.81.93/8058474/TestCase/"

4. Go to "Java Control Panel -> Advanced" and:
- Switch on "Debugging -> Enable tracing"
- Switch on "Debugging -> Enable logging"
- Switch on "Debugging -> Show applet lifecycle exceptions
- Choose "Java console -> Show console"
5. Open IE 11 browser, enable "F12 Developer Tools" and load HTML page with the test case from the step #1.
6. Click "go" button on the page, notice that the applet is loaded and displayed in 1 of 3 rectangles. Repeat this step until the applet is not displayed in a corresponding rectangle and "java.lang.IllegalStateException" exception is printed in Java Console.

Please note, that it may be required to repeat the step #6 even 50 or 100 times, and that ability to reproduce the bug differs between hosts with various hardware configuration.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
Full logs with the bug reproduced using various releases of JRE 9, JRE 8, JRE 7 by means of the test case are available in the attached "Logs.zip" archive file.

---------- Part of Java Console output containing "IllegalStateException" thrown, when the bug occurred ----------
PluginMain: processing StartAppletMessage
PluginMain: starting applet ID 12 in parent window 0x1a0732 with parameters:
    Document base = http://10.162.81.93/19617940/TestCase/AppletIsNotStartedOnDynInsIntoPage.html
    launchjnlp=
    code=AppletIsNotStartedOnDynInsIntoPage.class
    codebase=http://10.162.81.93/19617940/TestCase/
    width=200
    archive=TestCase.jar
    appletparam1=hello12345
    height=100
Applet2Manager.getJarFiles() for applet ID 12 Jar Files:TestCase.jar
Applet2ClassLoaderCache using zombie list entry for http://10.162.81.93/19617940/TestCase/,TestCase.jar
Applet2Manager executing createTGAndAC() for entry http://10.162.81.93/19617940/TestCase/,TestCase.jar
Applet2Manager.getClassLoaderCacheEntry() for applet ID 12: ClassLoader=sun.plugin2.applet.Applet2ClassLoader@~0x1753b6d, ThreadGroup=sun.plugin2.applet.Applet2ThreadGroup@~0x964833, AppContext=com.sun.deploy.uitoolkit.impl.awt.AWTAppContext@~0x136e637
PluginMain.registerApplet: 12 -> sun.plugin2.applet.Applet2Manager@18486a3, previous manager: null
java.lang.InternalError: couldn't create component peer
    at sun.awt.windows.WComponentPeer.checkCreation(WComponentPeer.java:822)
    at sun.awt.windows.WComponentPeer.<init>(WComponentPeer.java:793)
    at sun.awt.windows.WCanvasPeer.<init>(WCanvasPeer.java:45)
    at sun.awt.windows.WPanelPeer.<init>(WPanelPeer.java:74)
    at sun.awt.windows.WWindowPeer.<init>(WWindowPeer.java:171)
    at sun.awt.windows.WFramePeer.<init>(WFramePeer.java:168)
    at sun.awt.windows.WEmbeddedFramePeer.<init>(WEmbeddedFramePeer.java:38)
    at sun.awt.windows.WToolkit.createEmbeddedFrame(WToolkit.java:510)
    at sun.awt.windows.WEmbeddedFrame.addNotify(WEmbeddedFrame.java:82)
    at sun.plugin2.main.client.PluginEmbeddedFrame.addNotify(Unknown Source)
    at sun.awt.windows.WEmbeddedFrame.<init>(WEmbeddedFrame.java:73)
    at sun.plugin2.main.client.PluginEmbeddedFrame.<init>(Unknown Source)
    at com.sun.deploy.uitoolkit.impl.awt.AWTPluginEmbeddedFrameWindow.<init>(Unknown Source)
    at com.sun.deploy.uitoolkit.impl.awt.AWTPluginWindowFactory.createWindow(Unknown Source)
    at sun.plugin2.main.client.PluginMain$AppletFrameCreator.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:752)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:705)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:722)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:115)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:104)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:100)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:92)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:81)
PluginMain: could not create embedded frame
PluginMain.abortStartApplet for applet ID 12
basic: PluginMain.unregisterApplet: 12 from mananger sun.plugin2.applet.Applet2Manager@18486a3
Exception in thread "AWT-EventQueue-13" java.lang.IllegalStateException: Applet's parent container not set up
    at sun.plugin2.applet.Plugin2Manager.start(Unknown Source)
    at sun.plugin2.main.client.PluginMain$StartAppletRunner.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:752)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:705)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:722)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:115)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:104)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:100)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:92)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:81)
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 20, availableHeapKB: 242849, appletThreads: 2 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1014326 microsecs.
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 22, availableHeapKB: 242466, appletThreads: 2 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1014283 microsecs.
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 24, availableHeapKB: 246659, appletThreads: 2 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1014829 microsecs.
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 26, availableHeapKB: 246162, appletThreads: 2 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1014581 microsecs.
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 28, availableHeapKB: 245684, appletThreads: 2 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1035807 microsecs.
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 30, availableHeapKB: 244922, appletThreads: 2 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1014418 microsecs.
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 32, availableHeapKB: 244502, appletThreads: 2 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1014253 microsecs.
PluginMain: processing SetAppletSizeMessage
PluginMain: processing GetAppletMessage
PluginMain: processing GetAppletMessage
PluginMain: processing SynthesizeWindowActivationMessage
JVM[id=1]-Heartbeat sent heartbeat: [Conversation: id=0, initiatingSide=true] { healthy: true, ageSeconds: 34, availableHeapKB: 243876, appletThreads: 2 }
JVM[id=1]-Heartbeat round-trip heartbeat took 1014356 microsecs.
PluginMain: processing StopAppletMessage, applet ID 12
Comments
The next 2 files were attached to the bug: 1. "AppletIsNotStartedOnDynInsIntoPage.zip" - The test case. 2. "Logs.zip" - The archive file with log files which demonstrate the bug reproduced with JRE 9 b45, JRE 8u25 b18, JRE 7u71 b14.
13-01-2015

Escalated bugs live in the 7-pool, hence this step.
19-09-2014