JDK-4750273 : Test case of #4741860 with Java console on can hang IE
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 1.4.0
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2002-09-19
  • Updated: 2003-01-02
  • Resolved: 2002-11-19
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 Other Other Other
1.3.1_07 07Fixed 1.4.0_04Fixed 1.4.1_02Fixed 1.4.2Fixed
Description
Following Java stack will show the deadlock:


Full thread dump Java HotSpot(TM) Client VM (1.4.2-beta-b01 mixed mode):

"AWT-EventQueue-1" prio=4 tid=0x00356490 nid=0x24b in Object.wait() [1e2cf000..1e2cfd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <1211C448> (a java.awt.EventQueue)
        at java.lang.Object.wait(Unknown Source)
        at java.awt.EventQueue.getNextEvent(Unknown Source)
        - locked <1211C448> (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)

"Keep-Alive-Timer" daemon prio=4 tid=0x00355590 nid=0x330 waiting on condition [1e18f000..1e18fd8c]
        at java.lang.Thread.sleep(Native Method)
        at sun.net.www.http.KeepAliveCache.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Image Fetcher 0" daemon prio=9 tid=0x00353310 nid=0x200 in Object.wait() [1df8f000..1df8fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <1211F858> (a java.util.Vector)
        at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
        - locked <1211F858> (a java.util.Vector)
        at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
        at sun.awt.image.ImageFetcher.run(Unknown Source)

"thread applet-GetAppletsTest.class" prio=4 tid=0x00351BB0 nid=0x2e8 in Object.wait() [1dc8f000..1dc8fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <12180370> (a sun.plugin.AppletViewer)
        at java.lang.Object.wait(Unknown Source)
        at sun.applet.AppletPanel.getNextEvent(Unknown Source)
        - locked <12180370> (a sun.plugin.AppletViewer)
        at sun.applet.AppletPanel.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Thread-3" prio=5 tid=0x00350EA0 nid=0x22e runnable [1db8f000..1db8fd8c]
        at sun.plugin.com.DispatchClient.nativeInvoke(Native Method)
        at sun.plugin.com.DispatchClient.invoke(DispatchClient.java:35)
        at sun.plugin.javascript.ocx.JSObject.invoke(JSObject.java:99)
        - locked <1211BD40> (a sun.plugin.javascript.ocx.JSObject)
        at sun.plugin.javascript.ocx.JSObject.getMember(JSObject.java:176)
        at sun.plugin.AppletViewer.getDocumentBase(AppletViewer.java:1025)
        - locked <1211B9A8> (a java.lang.Object)
        at sun.plugin.AppletViewer.getCodeBase(AppletViewer.java:1083)
        - locked <1211B8B8> (a java.lang.Object)
        at sun.plugin.AppletViewer.appletInit(AppletViewer.java:601)
        at sun.plugin.viewer.LifeCycleManager.initAppletPanel(LifeCycleManager.java:166)
        at sun.plugin.viewer.IExplorerPluginObject$Initer.run(IExplorerPluginObject.java:169)

"TimerQueue" daemon prio=5 tid=0x00346560 nid=0x349 in Object.wait() [1d37f000..1d37fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <12180520> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(Unknown Source)
        - locked <12180520> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Unknown Source)

"Cache Cleanup Thread" prio=4 tid=0x00343A10 nid=0x145 in Object.wait() [1d27f000..1d27fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <12934898> (a sun.plugin.cache.CleanupThread)
        at sun.plugin.cache.CleanupThread.run(CleanupThread.java:97)
        - locked <12934898> (a sun.plugin.cache.CleanupThread)

"Java2D Disposer" daemon prio=10 tid=0x00337510 nid=0x36f in Object.wait() [1d17f000..1d17fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <12934940> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <12934940> (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)

"AWT-EventQueue-0" prio=7 tid=0x00335EA0 nid=0x208 runnable [1d07f000..1d07fd8c]
        at sun.awt.windows.WComponentPeer._requestFocus(Native Method)
        at sun.awt.windows.WComponentPeer.requestFocus(Unknown Source)
        at java.awt.Component.requestFocusHelper(Unknown Source)
        at java.awt.Component.requestFocusInWindow(Unknown Source)
        at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.SequencedEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        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)

"Main Console Writer" prio=7 tid=0x0032C200 nid=0x2e1 in Object.wait() [1cf7f000..1cf7fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <128C52F8> (a java.util.LinkedList)
        at java.lang.Object.wait(Unknown Source)
        at sun.plugin.MainConsoleWriter.run(MainConsoleWriter.java:106)
        - locked <128C52F8> (a java.util.LinkedList)
        at java.lang.Thread.run(Unknown Source)

"AWT-Windows" daemon prio=7 tid=0x00328070 nid=0x2d6 runnable [1cd7f000..1cd7fd8c]
        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=5 tid=0x00328470 nid=0x271 in Object.wait() [1cc7f000..1cc7fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <12895400> (a java.lang.Object)
        at java.lang.Object.wait(Unknown Source)
        at sun.awt.AWTAutoShutdown.run(Unknown Source)
        - locked <12895400> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"Signal Dispatcher" daemon prio=10 tid=0x00312460 nid=0x343 waiting on condition[0..0]

"Finalizer" daemon prio=9 tid=0x00306460 nid=0x259 in Object.wait() [1c4af000..1c4afd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <12878B70> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <12878B70> (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=0x0030F2D0 nid=0x32c in Object.wait() [1c3af000..1c3afd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <12878BD8> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Unknown Source)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <12878BD8> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x003085D0 nid=0x35e in Object.wait() [128000..12e8f0]
        at java.lang.Object.wait(Native Method)
        - waiting on <1211C060> (a java.awt.EventQueue$1AWTInvocationLock)
        at java.lang.Object.wait(Unknown Source)
        at java.awt.EventQueue.invokeAndWait(Unknown Source)
        - locked <1211C060> (a java.awt.EventQueue$1AWTInvocationLock)
        at javax.swing.SwingUtilities.invokeAndWait(Unknown Source)
        at sun.plugin.viewer.frame.IExplorerEmbeddedFrame.setBean(IExplorerEmbeddedFrame.java:104)
        at sun.plugin.viewer.IExplorerPluginObject.createFrame(IExplorerPluginObject.java:145)

"VM Thread" prio=5 tid=0x0030E5A0 nid=0x35b runnable

"VM Periodic Task Thread" prio=10 tid=0x00311880 nid=0x358 waiting on condition

"Suspend Checker Thread" prio=10 tid=0x00312F00 nid=0x142 runnable

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.3.1_07 1.4.0_04 1.4.1_02 mantis FIXED IN: 1.3.1_07 1.4.0_04 1.4.1_02 mantis INTEGRATED IN: 1.3.1_07 1.4.0_04 1.4.1_02 mantis mantis-b08
14-06-2004

EVALUATION There are two part of problem. 1. Java Console window, current running on main thread group, should move to newly created plugin thread group. 2. AppletViewer, running on main thread group, should run on applet thread group. I intend only fix the first part, the second part will be address by # 4754451. ###@###.### 2002-10-03
03-10-2002