Using JConsole in an atypical configuration (connector server did not have all permissions), I encountered the following deadlock:
Found one Java-level deadlock:
=============================
"Worker-MBeans-service:jmx:rmi://noname/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjEyOS4xNTcuMjAzLjU5AADrL5lFIf2g0Ibx36cP+QAAARxmIQWmgAEAeA==":
waiting to lock monitor 0x08d2d530 (object 0xcad0e208, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
waiting to lock monitor 0x08125f1c (object 0xf65afc90, a sun.tools.jconsole.inspector.XTree),
which is held by "Worker-MBeans-service:jmx:rmi://noname/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjEyOS4xNTcuMjAzLjU5AADrL5lFIf2g0Ibx36cP+QAAARxmIQWmgAEAeA=="
Java stack information for the threads listed above:
===================================================
"Worker-MBeans-service:jmx:rmi://noname/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjEyOS4xNTcuMjAzLjU5AADrL5lFIf2g0Ibx36cP+QAAARxmIQWmgAEAeA==":
at java.awt.Container.addImpl(Container.java:1000)
- waiting to lock <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.CellRendererPane.addImpl(CellRendererPane.java:89)
at java.awt.Container.add(Container.java:352)
at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2715)
at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)
at javax.swing.tree.VariableHeightLayoutCache.rebuild(VariableHeightLayoutCache.java:720)
at javax.swing.tree.VariableHeightLayoutCache.treeStructureChanged(VariableHeightLayoutCache.java:626)
at javax.swing.plaf.basic.BasicTreeUI$Handler.treeStructureChanged(BasicTreeUI.java:3829)
at javax.swing.tree.DefaultTreeModel.fireTreeStructureChanged(DefaultTreeModel.java:561)
at javax.swing.tree.DefaultTreeModel.nodeStructureChanged(DefaultTreeModel.java:347)
at sun.tools.jconsole.inspector.XTree.removeAll(XTree.java:136)
- locked <0xf65afc90> (a sun.tools.jconsole.inspector.XTree)
at sun.tools.jconsole.MBeansTab.synchroniseMBeanServerView(MBeansTab.java:101)
at sun.tools.jconsole.MBeansTab$1.run(MBeansTab.java:184)
at sun.tools.jconsole.Worker.run(Worker.java:37)
"AWT-EventQueue-0":
at java.awt.Component.getName(Component.java:786)
- waiting to lock <0xf65afc90> (a sun.tools.jconsole.inspector.XTree)
at com.sun.java.swing.plaf.gtk.GTKStyle.getColor(GTKStyle.java:176)
at javax.swing.plaf.synth.SynthLookAndFeel.paintRegion(SynthLookAndFeel.java:367)
at javax.swing.plaf.synth.SynthLookAndFeel.update(SynthLookAndFeel.java:331)
at javax.swing.plaf.synth.SynthTreeUI.update(SynthTreeUI.java:202)
at javax.swing.JComponent.paintComponent(JComponent.java:763)
at javax.swing.JComponent.paint(JComponent.java:1027)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1026)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1382)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1313)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:301)
at javax.swing.RepaintManager.paint(RepaintManager.java:1128)
at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:723)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
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.
It looks as if the operation in the non-EDT thread should be using invokeLater.
Found one Java-level deadlock:
=============================
"Worker-MBeans-service:jmx:rmi://noname/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjEyOS4xNTcuMjAzLjU5AADrL5lFIf2g0Ibx36cP+QAAARxmIQWmgAEAeA==":
waiting to lock monitor 0x08d2d530 (object 0xcad0e208, a java.awt.Component$AWTTreeLock),
which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
waiting to lock monitor 0x08125f1c (object 0xf65afc90, a sun.tools.jconsole.inspector.XTree),
which is held by "Worker-MBeans-service:jmx:rmi://noname/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjEyOS4xNTcuMjAzLjU5AADrL5lFIf2g0Ibx36cP+QAAARxmIQWmgAEAeA=="
Java stack information for the threads listed above:
===================================================
"Worker-MBeans-service:jmx:rmi://noname/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc5AAtVbmljYXN0UmVmMgAADjEyOS4xNTcuMjAzLjU5AADrL5lFIf2g0Ibx36cP+QAAARxmIQWmgAEAeA==":
at java.awt.Container.addImpl(Container.java:1000)
- waiting to lock <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.CellRendererPane.addImpl(CellRendererPane.java:89)
at java.awt.Container.add(Container.java:352)
at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2715)
at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)
at javax.swing.tree.VariableHeightLayoutCache.rebuild(VariableHeightLayoutCache.java:720)
at javax.swing.tree.VariableHeightLayoutCache.treeStructureChanged(VariableHeightLayoutCache.java:626)
at javax.swing.plaf.basic.BasicTreeUI$Handler.treeStructureChanged(BasicTreeUI.java:3829)
at javax.swing.tree.DefaultTreeModel.fireTreeStructureChanged(DefaultTreeModel.java:561)
at javax.swing.tree.DefaultTreeModel.nodeStructureChanged(DefaultTreeModel.java:347)
at sun.tools.jconsole.inspector.XTree.removeAll(XTree.java:136)
- locked <0xf65afc90> (a sun.tools.jconsole.inspector.XTree)
at sun.tools.jconsole.MBeansTab.synchroniseMBeanServerView(MBeansTab.java:101)
at sun.tools.jconsole.MBeansTab$1.run(MBeansTab.java:184)
at sun.tools.jconsole.Worker.run(Worker.java:37)
"AWT-EventQueue-0":
at java.awt.Component.getName(Component.java:786)
- waiting to lock <0xf65afc90> (a sun.tools.jconsole.inspector.XTree)
at com.sun.java.swing.plaf.gtk.GTKStyle.getColor(GTKStyle.java:176)
at javax.swing.plaf.synth.SynthLookAndFeel.paintRegion(SynthLookAndFeel.java:367)
at javax.swing.plaf.synth.SynthLookAndFeel.update(SynthLookAndFeel.java:331)
at javax.swing.plaf.synth.SynthTreeUI.update(SynthTreeUI.java:202)
at javax.swing.JComponent.paintComponent(JComponent.java:763)
at javax.swing.JComponent.paint(JComponent.java:1027)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JViewport.paint(JViewport.java:747)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1026)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
at javax.swing.JComponent.paintChildren(JComponent.java:864)
- locked <0xcad0e208> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1036)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1382)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1313)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:301)
at javax.swing.RepaintManager.paint(RepaintManager.java:1128)
at javax.swing.JComponent._paintImmediately(JComponent.java:5070)
at javax.swing.JComponent.paintImmediately(JComponent.java:4880)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:723)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
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.
It looks as if the operation in the non-EDT thread should be using invokeLater.
- duplicates
-
JDK-6439590 MBeans tab: jconsole mbean tree not correctly refreshed
-
- Closed
-