JDK-6489165 : dead lock occurs by pressing "refresh" many times in 5.0u10b02
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 5.0u10
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2006-11-02
  • Updated: 2011-12-17
  • Resolved: 2007-08-21
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.0u11Resolved 6u4Resolved 7Resolved
Related Reports
Duplicate :  
Relates :  
Description
When "refresh" icon is pressed many times, deadlock( in Java Level) occurs.

======================================================================
Full thread dump Java HotSpot(TM) Client VM (1.5.0_10-b02 mixed mode):

"AWT-EventQueue-24441" prio=4 tid=0x17372aa0 nid=0x280 in Object.wait() [0x17faf
000..0x17fafae8]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at java.awt.EventQueue.getNextEvent(Unknown Source)
        - locked <0x04443b70> (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-122202" prio=6 tid=0x173b2218 nid=0x270 waiting for monitor entry [0x17e
af000..0x17eafb68]
        at sun.plugin.viewer.context.DefaultPluginAppletContext.addJSObjectToExp
ortedList(Unknown Source)
        - waiting to lock <0x0444c1f0> (a java.util.ArrayList)
        at sun.plugin.javascript.ocx.JSObject.setIExplorerAppletContext(Unknown
Source)
        at sun.plugin.javascript.ocx.JSObject.invoke(Unknown Source)
        - locked <0x0444efc8> (a sun.plugin.javascript.ocx.JSObject)
        at sun.plugin.javascript.ocx.JSObject.getMember(Unknown Source)
        at sun.plugin.AppletViewer.getDocumentBase(Unknown Source)
        - locked <0x0444efb0> (a java.lang.Object)
        at sun.plugin.AppletViewer.getCodeBase(Unknown Source)
        - locked <0x0444ef80> (a java.lang.Object)
        at sun.plugin.AppletViewer.createClassLoader(Unknown Source)
        at sun.plugin.AppletViewer.appletInit(Unknown Source)
        at sun.plugin.viewer.LifeCycleManager.initAppletPanel(Unknown Source)
        at sun.plugin.viewer.IExplorerPluginObject$Initer.run(Unknown Source)

"Thread-122201" prio=6 tid=0x173c7fc8 nid=0x118 waiting for monitor entry [0x001
3e000..0x0013e494]
        at sun.plugin.javascript.ocx.JSObject.cleanup(Unknown Source)
        - waiting to lock <0x0444efc8> (a sun.plugin.javascript.ocx.JSObject)
        at sun.plugin.viewer.context.DefaultPluginAppletContext.onClose(Unknown
Source)
        - locked <0x0444c1f0> (a java.util.ArrayList)
        at sun.plugin.viewer.context.IExplorerAppletContext.onClose(Unknown Sour
ce)
        at sun.plugin.viewer.IExplorerPluginObject.destroyPlugin(Unknown Source)


"thread applet-Applet_Blank.class" prio=4 tid=0x173befe0 nid=0x224 in Object.wai
t() [0x180af000..0x180afc68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at sun.applet.AppletPanel.getNextEvent(Unknown Source)
        - locked <0x04442ab0> (a sun.plugin.AppletViewer)
        at sun.applet.AppletPanel.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Thread-226" prio=6 tid=0x0e6ca4e8 nid=0x1c4 waiting on condition [0x1777f000..0
x1777f9e8]
        at java.lang.Thread.sleep(Native Method)
        at sun.plugin.util.AnimationPanel.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"TimerQueue" daemon prio=6 tid=0x0e5dbfc0 nid=0x5f0 in Object.wait() [0x1721f000
..0x1721fb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x045b6af8> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(Unknown Source)
        - locked <0x045b6af8> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Unknown Source)

"AWT-EventQueue-0" prio=6 tid=0x0e5bbea8 nid=0x284 in Object.wait() [0x0efdf000.
.0x0efdfc68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at java.awt.EventQueue.getNextEvent(Unknown Source)
        - locked <0x04519008> (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=0x0e555d78 nid=0x598 waiting on conditio
n [0x0eedf000..0x0eedfce8]
        at java.lang.StringBuilder.toString(Unknown Source)
        at java.lang.Class.argumentTypesToString(Unknown Source)
        at java.lang.Class.getDeclaredMethod(Unknown Source)
        at java.lang.Thread$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.lang.Thread.auditSubclass(Unknown Source)
        at java.lang.Thread.isCCLOverridden(Unknown Source)
        - locked <0x04529f60> (a sun.misc.SoftCache)
        at java.lang.Thread.init(Unknown Source)
        at java.lang.Thread.<init>(Unknown Source)
        at java.awt.EventDispatchThread.<init>(Unknown Source)
        at java.awt.EventQueue$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.EventQueue.initDispatchThread(Unknown Source)
        - locked <0x04554b08> (a java.awt.EventQueue)
        at java.awt.EventQueue.postEvent(Unknown Source)
        at java.awt.EventQueue.postEventPrivate(Unknown Source)
        - locked <0x04554b08> (a java.awt.EventQueue)
        at java.awt.EventQueue.postEvent(Unknown Source)
        at sun.plugin.util.PluginSysUtil.invokeLater(Unknown Source)
        at sun.plugin.util.PluginConsoleController.invokeLater(Unknown Source)
        at com.sun.deploy.util.ConsoleWindow.append(Unknown Source)
        at com.sun.deploy.util.ConsoleTraceListener$ConsoleWriterThread.run(Unkn
own Source)
        - locked <0x045618d8> (a java.lang.Object)

"traceMsgQueueThread" daemon prio=6 tid=0x0e52ea20 nid=0x4d8 in Object.wait() [0
x0ebdf000..0x0ebdfa68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown Source)
        - locked <0x04523db0> (a java.util.ArrayList)
        at java.lang.Thread.run(Unknown Source)

"AWT-Windows" daemon prio=6 tid=0x0e526a68 nid=0x4d4 runnable [0x0e9cf000..0x0e9
cfae8]
        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=0x0e526690 nid=0x4d0 in Object.wait() [0x0e8cf000..0x0
e8cfb68]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at sun.awt.AWTAutoShutdown.run(Unknown Source)
        - locked <0x04523aa8> (a java.lang.Object)
        at java.lang.Thread.run(Unknown Source)

"Java2D Disposer" daemon prio=10 tid=0x0e520b80 nid=0x488 in Object.wait() [0x0e
7cf000..0x0e7cfbe8]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x04523b30> (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=0x01d6e570 nid=0x4b0 runnable [0x0000000
0..0x00000000]

"CompilerThread0" daemon prio=10 tid=0x01d6d200 nid=0x4a4 waiting on condition [
0x00000000..0x0e2cfa48]

"Signal Dispatcher" daemon prio=10 tid=0x01d6c580 nid=0x4a0 runnable [0x00000000
..0x00000000]

"Finalizer" daemon prio=8 tid=0x01d63758 nid=0x484 runnable [0x0e0cf000..0x0e0cf
a68]
        at java.awt.Font.pDispose(Native Method)
        at java.awt.Font.finalize(Unknown Source)
        at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
        at java.lang.ref.Finalizer.runFinalizer(Unknown Source)
        at java.lang.ref.Finalizer.access$100(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x01d622e8 nid=0x494 in Object.wait() [0x
0dfcf000..0x0dfcfae8]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Unknown Source)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x045239e0> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x01d5e0a8 nid=0x47c runnable

"VM Periodic Task Thread" prio=10 tid=0x01d6f8f8 nid=0x4b4 waiting on condition



Found one Java-level deadlock:
=============================
"Thread-122202":
  waiting to lock monitor 0x01d63054 (object 0x0444c1f0, a java.util.ArrayList),

  which is held by "Thread-122201"
"Thread-122201":
  waiting to lock monitor 0x01d63034 (object 0x0444efc8, a sun.plugin.javascript
.ocx.JSObject),
  which is held by "Thread-122202"

Java stack information for the threads listed above:
===================================================
"Thread-122202":
        at sun.plugin.viewer.context.DefaultPluginAppletContext.addJSObjectToExp
ortedList(Unknown Source)
        - waiting to lock <0x0444c1f0> (a java.util.ArrayList)
        at sun.plugin.javascript.ocx.JSObject.setIExplorerAppletContext(Unknown
Source)
        at sun.plugin.javascript.ocx.JSObject.invoke(Unknown Source)
        - locked <0x0444efc8> (a sun.plugin.javascript.ocx.JSObject)
        at sun.plugin.javascript.ocx.JSObject.getMember(Unknown Source)
        at sun.plugin.AppletViewer.getDocumentBase(Unknown Source)
        - locked <0x0444efb0> (a java.lang.Object)
        at sun.plugin.AppletViewer.getCodeBase(Unknown Source)
        - locked <0x0444ef80> (a java.lang.Object)
        at sun.plugin.AppletViewer.createClassLoader(Unknown Source)
        at sun.plugin.AppletViewer.appletInit(Unknown Source)
        at sun.plugin.viewer.LifeCycleManager.initAppletPanel(Unknown Source)
        at sun.plugin.viewer.IExplorerPluginObject$Initer.run(Unknown Source)
"Thread-122201":
        at sun.plugin.javascript.ocx.JSObject.cleanup(Unknown Source)
        - waiting to lock <0x0444efc8> (a sun.plugin.javascript.ocx.JSObject)
        at sun.plugin.viewer.context.DefaultPluginAppletContext.onClose(Unknown
Source)
        - locked <0x0444c1f0> (a java.util.ArrayList)
        at sun.plugin.viewer.context.IExplorerAppletContext.onClose(Unknown Sour
ce)
        at sun.plugin.viewer.IExplorerPluginObject.destroyPlugin(Unknown Source)


Found 1 deadlock.
======================================================================


CONFIGURATION : 
[OS]       WindowsXP SP2 English
[Plug-in]  5.0u10b2(fcs)

REPRODUCE :

1) Set -verbose option
2) Invoke the attached TC01-01
3) Repeat to press  "refresh" icon 
4) Freeze occured after 10 hours.

NOTE:
  All the result is attached. That includes result by adplus -hang -pn iexplore.exe.

Comments
EVALUATION This is a duplicate of CR 6576321. We close this one and use 6576321 to track this bug.
21-08-2007

EVALUATION it's caused by the race condition of Initer thread and main thread.
03-11-2006