-
Bug
-
Resolution: Fixed
-
P3
-
6
-
b83
-
generic
-
generic
-
Verified
Found one Java-level deadlock:
=============================
"Timer-2512":
waiting to lock monitor 0x0aaa485c (object 0x02e27838, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
waiting to lock monitor 0x0aaa478c (object 0x030efa58, a javax.swing.BoxLayout),
which is held by "Timer-2512"
Java stack information for the threads listed above:
===================================================
"Timer-2512":
at java.awt.Container.preferredSize(Container.java:1552)
- waiting to lock <0x02e27838> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.getPreferredSize(Container.java:1537)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
at javax.swing.BoxLayout.checkRequests(BoxLayout.java:437)
at javax.swing.BoxLayout.preferredLayoutSize(BoxLayout.java:254)
- locked <0x030efa58> (a javax.swing.BoxLayout)
at javax.swing.plaf.basic.BasicOptionPaneUI.getPreferredSize(BasicOptionPaneUI.java:253)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1649)
at sun.tools.jconsole.SheetDialog$SlideAndFadeGlassPane.doSlide(SheetDialog.java:99)
at sun.tools.jconsole.SheetDialog$SlideAndFadeGlassPane.show(SheetDialog.java:79)
at sun.tools.jconsole.SheetDialog.showOptionDialog(SheetDialog.java:54)
at sun.tools.jconsole.VMPanel.vmPanelDied(VMPanel.java:397)
at sun.tools.jconsole.VMPanel.update(VMPanel.java:431)
at sun.tools.jconsole.VMPanel.access$000(VMPanel.java:22)
at sun.tools.jconsole.VMPanel$1.run(VMPanel.java:98)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
"AWT-EventQueue-0":
at javax.swing.BoxLayout.layoutContainer(BoxLayout.java:378)
- waiting to lock <0x030efa58> (a javax.swing.BoxLayout)
at java.awt.Container.layout(Container.java:1395)
at java.awt.Container.doLayout(Container.java:1384)
at java.awt.Container.validateTree(Container.java:1467)
at java.awt.Container.validateTree(Container.java:1474)
at java.awt.Container.validateTree(Container.java:1474)
at java.awt.Container.validate(Container.java:1442)
- locked <0x02e27838> (a java.awt.Component$AWTTreeLock)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:608)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:127)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Found 1 deadlock.
2005-11-21 21:14:34
Full thread dump Java HotSpot(TM) Client VM (1.6.0-rc-b60 mixed mode):
"RMI TCP Connection(idle)" daemon prio=6 tid=0x0ae3b800 nid=0x958 waiting on condition [0x17eff000..0x17effa94]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02f49f58> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:179)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:871)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:495)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:693)
at java.lang.Thread.run(Thread.java:620)
"RMI TCP Connection(idle)" daemon prio=6 tid=0x0ae50b00 nid=0xde0 waiting on condition [0x17dbf000..0x17dbfb14]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02f49f58> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:179)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:871)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:495)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:693)
at java.lang.Thread.run(Thread.java:620)
"RMI TCP Connection(idle)" daemon prio=6 tid=0x0ad24b00 nid=0xd88 waiting on condition [0x17d6f000..0x17d6fb94]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02f49f58> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:179)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:871)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:495)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:693)
at java.lang.Thread.run(Thread.java:620)
"JMX server connection timeout 34" daemon prio=6 tid=0x0ad2c800 nid=0xdec in Object.wait() [0x17d1f000..0x17d1fc14]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x03129da0> (a [I)
at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
- locked <0x03129da0> (a [I)
at java.lang.Thread.run(Thread.java:620)
"RMI TCP Connection(1)-129.150.116.247" daemon prio=6 tid=0x0ad2eb00 nid=0xa04 in Object.wait() [0x17a7e000..0x17a7fc94]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x03148290> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)
at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:345)
- locked <0x03148290> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)
at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:123)
at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:194)
at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1208)
at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1207)
at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1212)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:589)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:669)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:694)
at java.lang.Thread.run(Thread.java:620)
"RMI TCP Accept-0" daemon prio=6 tid=0x0ad6ea00 nid=0xa98 runnable [0x17c8f000..0x17c8fd14]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
- locked <0x0312c0b8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
at java.lang.Thread.run(Thread.java:620)
"Timer-2512" daemon prio=6 tid=0x0ad19500 nid=0x4f8 waiting for monitor entry [0x17eaf000..0x17eafb14]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.awt.Container.preferredSize(Container.java:1552)
- waiting to lock <0x02e27838> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.getPreferredSize(Container.java:1537)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
at javax.swing.BoxLayout.checkRequests(BoxLayout.java:437)
at javax.swing.BoxLayout.preferredLayoutSize(BoxLayout.java:254)
- locked <0x030efa58> (a javax.swing.BoxLayout)
at javax.swing.plaf.basic.BasicOptionPaneUI.getPreferredSize(BasicOptionPaneUI.java:253)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1649)
at sun.tools.jconsole.SheetDialog$SlideAndFadeGlassPane.doSlide(SheetDialog.java:99)
at sun.tools.jconsole.SheetDialog$SlideAndFadeGlassPane.show(SheetDialog.java:79)
at sun.tools.jconsole.SheetDialog.showOptionDialog(SheetDialog.java:54)
at sun.tools.jconsole.VMPanel.vmPanelDied(VMPanel.java:397)
at sun.tools.jconsole.VMPanel.update(VMPanel.java:431)
at sun.tools.jconsole.VMPanel.access$000(VMPanel.java:22)
at sun.tools.jconsole.VMPanel$1.run(VMPanel.java:98)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
"Worker-MBeans-2512" prio=4 tid=0x176a2100 nid=0xec0 in Object.wait() [0x17e5f000..0x17e5fa94]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02fc69f8> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:484)
at sun.tools.jconsole.Worker.run(Worker.java:28)
- locked <0x02fc69f8> (a java.util.ArrayList)
"Worker-Memory-2512" prio=4 tid=0x1769f900 nid=0x9e8 in Object.wait() [0x17e0f000..0x17e0fb94]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02f61580> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:484)
at sun.tools.jconsole.Worker.run(Worker.java:28)
- locked <0x02f61580> (a java.util.ArrayList)
"RMI Scheduler(0)" daemon prio=6 tid=0x0acffe00 nid=0xe1c waiting on condition [0x17c3f000..0x17c3fa14]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02f44d70> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:179)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1906)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:165)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:578)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:571)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:490)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:693)
at java.lang.Thread.run(Thread.java:620)
"GC Daemon" daemon prio=2 tid=0x0acf1e00 nid=0x41c in Object.wait() [0x17bef000..0x17befa94]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02f44ee8> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(GC.java:100)
- locked <0x02f44ee8> (a sun.misc.GC$LatencyLock)
"RMI RenewClean-[129.150.116.247:4112]" daemon prio=6 tid=0x0add4b00 nid=0xe70 runnable [0x17b9f000..0x17b9fb14]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
- locked <0x0292f220> (a java.net.SocksSocketImpl)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:516)
at java.net.Socket.connect(Socket.java:466)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:179)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.transport.DGCImpl_Stub.dirty(Unknown Source)
at sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall(DGCClient.java:342)
at sun.rmi.transport.DGCClient$EndpointEntry.access$1600(DGCClient.java:153)
at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:555)
at java.lang.Thread.run(Thread.java:620)
"TimerQueue" daemon prio=6 tid=0x0add1200 nid=0xed4 in Object.wait() [0x1752f000..0x1752fc14]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02f23738> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(TimerQueue.java:233)
- locked <0x02f23738> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:620)
"DestroyJavaVM" prio=6 tid=0x00277b00 nid=0x96c waiting on condition [0x00000000..0x0086fd4c]
java.lang.Thread.State: RUNNABLE
"AWT-EventQueue-0" prio=6 tid=0x0adbcd00 nid=0xe8c waiting for monitor entry [0x175cf000..0x175cfd14]
java.lang.Thread.State: BLOCKED (on object monitor)
at javax.swing.BoxLayout.layoutContainer(BoxLayout.java:378)
- waiting to lock <0x030efa58> (a javax.swing.BoxLayout)
at java.awt.Container.layout(Container.java:1395)
at java.awt.Container.doLayout(Container.java:1384)
at java.awt.Container.validateTree(Container.java:1467)
at java.awt.Container.validateTree(Container.java:1474)
at java.awt.Container.validateTree(Container.java:1474)
at java.awt.Container.validate(Container.java:1442)
- locked <0x02e27838> (a java.awt.Component$AWTTreeLock)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:608)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:127)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
"AWT-Windows" daemon prio=6 tid=0x0adb3b00 nid=0x240 runnable [0x1705f000..0x1705fa94]
java.lang.Thread.State: RUNNABLE
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(WToolkit.java:290)
at java.lang.Thread.run(Thread.java:620)
"AWT-Shutdown" prio=6 tid=0x0adb2d00 nid=0xc88 in Object.wait() [0x1700f000..0x1700fb14]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02e252b8> (a java.lang.Object)
at java.lang.Object.wait(Object.java:484)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0x02e252b8> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:620)
"Java2D Disposer" daemon prio=10 tid=0x0adb2800 nid=0xdb4 in Object.wait() [0x16fbf000..0x16fbfb94]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02e4d270> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x02e4d270> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at sun.java2d.Disposer.run(Disposer.java:123)
at java.lang.Thread.run(Thread.java:620)
"Low Memory Detector" daemon prio=6 tid=0x0aab7600 nid=0x3f4 runnable [0x00000000..0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x0aab5000 nid=0x1dc waiting on condition [0x00000000..0x0ac9f7f4]
java.lang.Thread.State: RUNNABLE
"Attach Listener" daemon prio=10 tid=0x0aab4000 nid=0xe44 waiting on condition [0x00000000..0x0ac4fd0c]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x0aab3500 nid=0xc1c runnable [0x00000000..0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=0x0aaa7600 nid=0x4a8 in Object.wait() [0x0abaf000..0x0abafa94]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02e25510> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x02e25510> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x0aaa3400 nid=0xc6c in Object.wait() [0x0ab5f000..0x0ab5fb14]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02e25280> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:484)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x02e25280> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x0aaa0500 nid=0x5d4 runnable
"VM Periodic Task Thread" prio=10 tid=0x0ad08100 nid=0x964 waiting on condition
JNI global references: 4969
Found one Java-level deadlock:
=============================
"Timer-2512":
waiting to lock monitor 0x0aaa485c (object 0x02e27838, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
waiting to lock monitor 0x0aaa478c (object 0x030efa58, a javax.swing.BoxLayout),
which is held by "Timer-2512"
[.... seems like it's a max size that doesn't allow me to include the whole dump. see next entry]
To reproduce the hang,
1. java -jar SwingSet2.jar
2. jconsole <pid>
3. Ctrl-C the SwingSet2 application
4. Click through the tabs in jconsole - after a few seconds it will
hang. Sometimes it will hang for 30 and recover. Other things it will
hang and never recover.
=============================
"Timer-2512":
waiting to lock monitor 0x0aaa485c (object 0x02e27838, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
waiting to lock monitor 0x0aaa478c (object 0x030efa58, a javax.swing.BoxLayout),
which is held by "Timer-2512"
Java stack information for the threads listed above:
===================================================
"Timer-2512":
at java.awt.Container.preferredSize(Container.java:1552)
- waiting to lock <0x02e27838> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.getPreferredSize(Container.java:1537)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
at javax.swing.BoxLayout.checkRequests(BoxLayout.java:437)
at javax.swing.BoxLayout.preferredLayoutSize(BoxLayout.java:254)
- locked <0x030efa58> (a javax.swing.BoxLayout)
at javax.swing.plaf.basic.BasicOptionPaneUI.getPreferredSize(BasicOptionPaneUI.java:253)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1649)
at sun.tools.jconsole.SheetDialog$SlideAndFadeGlassPane.doSlide(SheetDialog.java:99)
at sun.tools.jconsole.SheetDialog$SlideAndFadeGlassPane.show(SheetDialog.java:79)
at sun.tools.jconsole.SheetDialog.showOptionDialog(SheetDialog.java:54)
at sun.tools.jconsole.VMPanel.vmPanelDied(VMPanel.java:397)
at sun.tools.jconsole.VMPanel.update(VMPanel.java:431)
at sun.tools.jconsole.VMPanel.access$000(VMPanel.java:22)
at sun.tools.jconsole.VMPanel$1.run(VMPanel.java:98)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
"AWT-EventQueue-0":
at javax.swing.BoxLayout.layoutContainer(BoxLayout.java:378)
- waiting to lock <0x030efa58> (a javax.swing.BoxLayout)
at java.awt.Container.layout(Container.java:1395)
at java.awt.Container.doLayout(Container.java:1384)
at java.awt.Container.validateTree(Container.java:1467)
at java.awt.Container.validateTree(Container.java:1474)
at java.awt.Container.validateTree(Container.java:1474)
at java.awt.Container.validate(Container.java:1442)
- locked <0x02e27838> (a java.awt.Component$AWTTreeLock)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:608)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:127)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Found 1 deadlock.
2005-11-21 21:14:34
Full thread dump Java HotSpot(TM) Client VM (1.6.0-rc-b60 mixed mode):
"RMI TCP Connection(idle)" daemon prio=6 tid=0x0ae3b800 nid=0x958 waiting on condition [0x17eff000..0x17effa94]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02f49f58> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:179)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:871)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:495)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:693)
at java.lang.Thread.run(Thread.java:620)
"RMI TCP Connection(idle)" daemon prio=6 tid=0x0ae50b00 nid=0xde0 waiting on condition [0x17dbf000..0x17dbfb14]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02f49f58> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:179)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:871)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:495)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:693)
at java.lang.Thread.run(Thread.java:620)
"RMI TCP Connection(idle)" daemon prio=6 tid=0x0ad24b00 nid=0xd88 waiting on condition [0x17d6f000..0x17d6fb94]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02f49f58> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:179)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:871)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:495)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:693)
at java.lang.Thread.run(Thread.java:620)
"JMX server connection timeout 34" daemon prio=6 tid=0x0ad2c800 nid=0xdec in Object.wait() [0x17d1f000..0x17d1fc14]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x03129da0> (a [I)
at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
- locked <0x03129da0> (a [I)
at java.lang.Thread.run(Thread.java:620)
"RMI TCP Connection(1)-129.150.116.247" daemon prio=6 tid=0x0ad2eb00 nid=0xa04 in Object.wait() [0x17a7e000..0x17a7fc94]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x03148290> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)
at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:345)
- locked <0x03148290> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)
at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:123)
at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:194)
at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1208)
at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1207)
at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1212)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:589)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:669)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:694)
at java.lang.Thread.run(Thread.java:620)
"RMI TCP Accept-0" daemon prio=6 tid=0x0ad6ea00 nid=0xa98 runnable [0x17c8f000..0x17c8fd14]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
- locked <0x0312c0b8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
at java.lang.Thread.run(Thread.java:620)
"Timer-2512" daemon prio=6 tid=0x0ad19500 nid=0x4f8 waiting for monitor entry [0x17eaf000..0x17eafb14]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.awt.Container.preferredSize(Container.java:1552)
- waiting to lock <0x02e27838> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.getPreferredSize(Container.java:1537)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
at javax.swing.BoxLayout.checkRequests(BoxLayout.java:437)
at javax.swing.BoxLayout.preferredLayoutSize(BoxLayout.java:254)
- locked <0x030efa58> (a javax.swing.BoxLayout)
at javax.swing.plaf.basic.BasicOptionPaneUI.getPreferredSize(BasicOptionPaneUI.java:253)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1649)
at sun.tools.jconsole.SheetDialog$SlideAndFadeGlassPane.doSlide(SheetDialog.java:99)
at sun.tools.jconsole.SheetDialog$SlideAndFadeGlassPane.show(SheetDialog.java:79)
at sun.tools.jconsole.SheetDialog.showOptionDialog(SheetDialog.java:54)
at sun.tools.jconsole.VMPanel.vmPanelDied(VMPanel.java:397)
at sun.tools.jconsole.VMPanel.update(VMPanel.java:431)
at sun.tools.jconsole.VMPanel.access$000(VMPanel.java:22)
at sun.tools.jconsole.VMPanel$1.run(VMPanel.java:98)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
"Worker-MBeans-2512" prio=4 tid=0x176a2100 nid=0xec0 in Object.wait() [0x17e5f000..0x17e5fa94]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02fc69f8> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:484)
at sun.tools.jconsole.Worker.run(Worker.java:28)
- locked <0x02fc69f8> (a java.util.ArrayList)
"Worker-Memory-2512" prio=4 tid=0x1769f900 nid=0x9e8 in Object.wait() [0x17e0f000..0x17e0fb94]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02f61580> (a java.util.ArrayList)
at java.lang.Object.wait(Object.java:484)
at sun.tools.jconsole.Worker.run(Worker.java:28)
- locked <0x02f61580> (a java.util.ArrayList)
"RMI Scheduler(0)" daemon prio=6 tid=0x0acffe00 nid=0xe1c waiting on condition [0x17c3f000..0x17c3fa14]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x02f44d70> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:179)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1906)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:165)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:578)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:571)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:490)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:693)
at java.lang.Thread.run(Thread.java:620)
"GC Daemon" daemon prio=2 tid=0x0acf1e00 nid=0x41c in Object.wait() [0x17bef000..0x17befa94]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02f44ee8> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(GC.java:100)
- locked <0x02f44ee8> (a sun.misc.GC$LatencyLock)
"RMI RenewClean-[129.150.116.247:4112]" daemon prio=6 tid=0x0add4b00 nid=0xe70 runnable [0x17b9f000..0x17b9fb14]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
- locked <0x0292f220> (a java.net.SocksSocketImpl)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:516)
at java.net.Socket.connect(Socket.java:466)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:179)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.transport.DGCImpl_Stub.dirty(Unknown Source)
at sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall(DGCClient.java:342)
at sun.rmi.transport.DGCClient$EndpointEntry.access$1600(DGCClient.java:153)
at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:555)
at java.lang.Thread.run(Thread.java:620)
"TimerQueue" daemon prio=6 tid=0x0add1200 nid=0xed4 in Object.wait() [0x1752f000..0x1752fc14]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02f23738> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(TimerQueue.java:233)
- locked <0x02f23738> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:620)
"DestroyJavaVM" prio=6 tid=0x00277b00 nid=0x96c waiting on condition [0x00000000..0x0086fd4c]
java.lang.Thread.State: RUNNABLE
"AWT-EventQueue-0" prio=6 tid=0x0adbcd00 nid=0xe8c waiting for monitor entry [0x175cf000..0x175cfd14]
java.lang.Thread.State: BLOCKED (on object monitor)
at javax.swing.BoxLayout.layoutContainer(BoxLayout.java:378)
- waiting to lock <0x030efa58> (a javax.swing.BoxLayout)
at java.awt.Container.layout(Container.java:1395)
at java.awt.Container.doLayout(Container.java:1384)
at java.awt.Container.validateTree(Container.java:1467)
at java.awt.Container.validateTree(Container.java:1474)
at java.awt.Container.validateTree(Container.java:1474)
at java.awt.Container.validate(Container.java:1442)
- locked <0x02e27838> (a java.awt.Component$AWTTreeLock)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:608)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:127)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
"AWT-Windows" daemon prio=6 tid=0x0adb3b00 nid=0x240 runnable [0x1705f000..0x1705fa94]
java.lang.Thread.State: RUNNABLE
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(WToolkit.java:290)
at java.lang.Thread.run(Thread.java:620)
"AWT-Shutdown" prio=6 tid=0x0adb2d00 nid=0xc88 in Object.wait() [0x1700f000..0x1700fb14]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02e252b8> (a java.lang.Object)
at java.lang.Object.wait(Object.java:484)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0x02e252b8> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:620)
"Java2D Disposer" daemon prio=10 tid=0x0adb2800 nid=0xdb4 in Object.wait() [0x16fbf000..0x16fbfb94]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02e4d270> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x02e4d270> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at sun.java2d.Disposer.run(Disposer.java:123)
at java.lang.Thread.run(Thread.java:620)
"Low Memory Detector" daemon prio=6 tid=0x0aab7600 nid=0x3f4 runnable [0x00000000..0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x0aab5000 nid=0x1dc waiting on condition [0x00000000..0x0ac9f7f4]
java.lang.Thread.State: RUNNABLE
"Attach Listener" daemon prio=10 tid=0x0aab4000 nid=0xe44 waiting on condition [0x00000000..0x0ac4fd0c]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x0aab3500 nid=0xc1c runnable [0x00000000..0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=0x0aaa7600 nid=0x4a8 in Object.wait() [0x0abaf000..0x0abafa94]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02e25510> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x02e25510> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x0aaa3400 nid=0xc6c in Object.wait() [0x0ab5f000..0x0ab5fb14]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x02e25280> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:484)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x02e25280> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x0aaa0500 nid=0x5d4 runnable
"VM Periodic Task Thread" prio=10 tid=0x0ad08100 nid=0x964 waiting on condition
JNI global references: 4969
Found one Java-level deadlock:
=============================
"Timer-2512":
waiting to lock monitor 0x0aaa485c (object 0x02e27838, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
waiting to lock monitor 0x0aaa478c (object 0x030efa58, a javax.swing.BoxLayout),
which is held by "Timer-2512"
[.... seems like it's a max size that doesn't allow me to include the whole dump. see next entry]
To reproduce the hang,
1. java -jar SwingSet2.jar
2. jconsole <pid>
3. Ctrl-C the SwingSet2 application
4. Click through the tabs in jconsole - after a few seconds it will
hang. Sometimes it will hang for 30 and recover. Other things it will
hang and never recover.