JDK-6501186 : JVM crashes when IE windows are opened and closed so many times thru JavaScript in 5.0u10
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 5.0u10
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2006-12-06
  • Updated: 2011-02-16
  • 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
5.0u12 b02Fixed
Description
IE windows are open and closed repeatedly in 5.0u10b02.

REPRODUCE :
Please unfoled attached testcase-TC04-01.zip and go to "portable" dir.

1. Open attached Top.html
2. Select "1.5.0_xx Arctest" in pull down menu
3. Click "Launch" button

An Arctest window appear and disappaer repeatedly.


===== Thread Dump ====>
......
[Loaded java.awt.Component$FlipBufferStrategy from G:\PROGRA~1\Java\JRE15~1.0_1\
lib\rt.jar]
[Loaded sun.reflect.GeneratedConstructorAccessor3 from __JVM_DefineClass__]
Full thread dump Java HotSpot(TM) Client VM (1.5.0_10-b02 mixed mode, sharing):

"thread applet-ArcTest.class" prio=4 tid=0x02128000 nid=0x1c8 in Object.wait() [
0x0f54f000..0x0f54fc68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at sun.applet.AppletPanel.getNextEvent(Unknown Source)
        - locked <0x20aa0b50> (a sun.plugin.AppletViewer)
        at sun.applet.AppletPanel.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Thread-2886" prio=6 tid=0x021190f8 nid=0xa38 runnable [0x00000000..0x0f24e810]

"AWT-EventQueue-20" prio=4 tid=0x04c082d8 nid=0xf94 in Object.wait() [0x0eb4f000
..0x0eb4f9e8]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at java.awt.EventQueue.getNextEvent(Unknown Source)
        - locked <0x20b00b40> (a java.awt.EventQueue)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

"Thread-2816" prio=6 tid=0x04c45c48 nid=0x9ac runnable [0x00000000..0x0e2fe810]

"TimerQueue" daemon prio=6 tid=0x04c4f158 nid=0x32c in Object.wait() [0x0d8ff000
..0x0d8ffb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x212974b0> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(Unknown Source)
        - locked <0x212974b0> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Unknown Source)

"AWT-EventQueue-0" prio=6 tid=0x04c37920 nid=0xb78 in Object.wait() [0x056bf000.
.0x056bfc68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at java.awt.EventQueue.getNextEvent(Unknown Source)
        - locked <0x211f1a98> (a java.awt.EventQueue)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

"ConsoleWriterThread" daemon prio=6 tid=0x04be37f0 nid=0x2b0 in Object.wait() [0
x055bf000..0x055bfce8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x212417d8> (a java.lang.Object)
        at java.lang.Object.wait(Unknown Source)
        at com.sun.deploy.util.ConsoleTraceListener$ConsoleWriterThread.run(Unkn
own Source)
        - locked <0x212417d8> (a java.lang.Object)

"AWT-EventQueue-1" prio=6 tid=0x04bdde78 nid=0x91c in Object.wait() [0x054bf000.
.0x054bfd68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at java.awt.EventQueue.getNextEvent(Unknown Source)
        - locked <0x21235198> (a java.awt.EventQueue)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

"traceMsgQueueThread" daemon prio=6 tid=0x04bd0e90 nid=0x328 in Object.wait() [0
x052bf000..0x052bfa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x21202500> (a java.util.ArrayList)
        at java.lang.Object.wait(Unknown Source)
        at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown Source)
        - locked <0x21202500> (a java.util.ArrayList)
        at java.lang.Thread.run(Unknown Source)

"AWT-Windows" daemon prio=6 tid=0x04bca3a0 nid=0xbd4 runnable [0x050af000..0x050
afae8]
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"AWT-Shutdown" prio=6 tid=0x04bc9f80 nid=0x928 in Object.wait() [0x04faf000..0x0
4fafb68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at sun.awt.AWTAutoShutdown.run(Unknown Source)
        - locked <0x212021a8> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x0215ee08 nid=0x88c in Object.wait() [0x04
eaf000..0x04eafbe8]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x21202230> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at sun.java2d.Disposer.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Low Memory Detector" daemon prio=6 tid=0x0210f6a0 nid=0x898 runnable [0x0000000
0..0x00000000]

"CompilerThread0" daemon prio=10 tid=0x0210e278 nid=0x4cc waiting on condition [
0x00000000..0x0499f6c8]

"Signal Dispatcher" daemon prio=10 tid=0x0210d5f0 nid=0x9f8 waiting on condition
 [0x00000000..0x00000000]

"Finalizer" daemon prio=8 tid=0x02108818 nid=0x6f0 in Object.wait() [0x0479f000.
.0x0479fa68]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x212023d8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x020df270 nid=0xe98 in Object.wait() [0x
0469f000..0x0469fae8]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x212020e0> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x020de030 nid=0xdc8 runnable

"VM Periodic Task Thread" prio=10 tid=0x021108f8 nid=0xb5c waiting on condition

===== Thread Dump End ====>

Comments
EVALUATION The fix is to change the threading model in SSVHelper from CComSingleThreadModel to CComMultiThreadModel.
10-03-2007