-
Bug
-
Resolution: Fixed
-
P2
-
6
-
b46
-
x86
-
windows_xp
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2143105 | 5.0u11 | Vaibhav Kulkarni | P2 | Closed | Fixed | b02 |
In a stress test with customer's application creating and closing multiple applets, the swing deadlock is observed with J2SE 5.0 FCS. Two AWT EventQueue threads are deadlocked. The full java thread dump is also attached to this bug report.
Deadlock Information (see attachments for full thread dump):
Found one Java-level deadlock:
=============================
"AWT-EventQueue-4":
waiting to lock monitor 0x06b231dc (object 0x1170ad00, a javax.swing.plaf.meta
l.MetalUtils$GradientPainter),
which is held by "AWT-EventQueue-3472"
"AWT-EventQueue-3472":
waiting to lock monitor 0x02d79b44 (object 0x109e7c38, a java.awt.Component$AW
TTreeLock),
which is held by "AWT-EventQueue-4"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-4":
at javax.swing.plaf.metal.MetalUtils$GradientPainter.paint(MetalUtils.ja
va:239)
- waiting to lock <0x1170ad00> (a javax.swing.plaf.metal.MetalUtils$Grad
ientPainter)
at javax.swing.plaf.metal.MetalUtils.drawGradient(MetalUtils.java:203)
at javax.swing.plaf.metal.MetalScrollBarUI.oceanPaintThumb(MetalScrollBa
rUI.java:344)
at javax.swing.plaf.metal.MetalScrollBarUI.paintThumb(MetalScrollBarUI.j
ava:212)
at javax.swing.plaf.basic.BasicScrollBarUI.paint(BasicScrollBarUI.java:3
64)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
at javax.swing.JComponent.paintComponent(JComponent.java:740)
at javax.swing.JComponent.paint(JComponent.java:1003)
at javax.swing.JComponent.paintChildren(JComponent.java:840)
- locked <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1012)
at javax.swing.JComponent.paintChildren(JComponent.java:840)
- locked <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4937)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4883)
at javax.swing.JComponent.paint(JComponent.java:993)
at javax.swing.JComponent.paintChildren(JComponent.java:840)
- locked <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1012)
at javax.swing.JViewport.paint(JViewport.java:728)
at javax.swing.JComponent.paintChildren(JComponent.java:840)
- locked <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1012)
at jp.co.yokogawa.Stardom.UD.client.Message.CSDUDGRMessage.draw(CSDUDGRM
essage.java:609)
at jp.co.yokogawa.Stardom.UD.client.Message.CSDUDGrMsgAlarm.draw(CSDUDGr
MsgAlarm.java:429)
at jp.co.yokogawa.Stardom.UD.client.GrObjWnd.CSDUDPrimitiveList.allDraw(
CSDUDPrimitiveList.java:141)
at jp.co.yokogawa.Stardom.UD.client.GrObjWnd.CSDUDGrObjWnd.paint(CSDUDGr
ObjWnd.java:713)
at jp.co.yokogawa.Stardom.UD.client.GrObjWnd.CSDUDGrObjWnd.update(CSDUDG
rObjWnd.java:681)
at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
at sun.awt.RepaintArea.paint(RepaintArea.java:216)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:254)
at java.awt.Component.dispatchEventImpl(Component.java:4031)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
"AWT-EventQueue-3472":
at java.awt.Component.getGraphicsConfiguration(Component.java:814)
- waiting to lock <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.plaf.metal.CachedPainter.paint(CachedPainter.java:68)
at javax.swing.plaf.metal.MetalUtils$GradientPainter.paint(MetalUtils.ja
va:249)
- locked <0x1170ad00> (a javax.swing.plaf.metal.MetalUtils$GradientPaint
er)
at javax.swing.plaf.metal.MetalUtils.drawGradient(MetalUtils.java:203)
at javax.swing.plaf.metal.MetalButtonUI.update(MetalButtonUI.java:110)
at javax.swing.JComponent.paintComponent(JComponent.java:740)
at javax.swing.JComponent.paint(JComponent.java:1003)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4930)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4883)
at javax.swing.JComponent._paintImmediately(JComponent.java:4826)
at javax.swing.JComponent.paintImmediately(JComponent.java:4633)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(System
EventQueueUtilities.java:114)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Found 1 deadlock.
###@###.### 11/3/04 22:15 GMT
Deadlock Information (see attachments for full thread dump):
Found one Java-level deadlock:
=============================
"AWT-EventQueue-4":
waiting to lock monitor 0x06b231dc (object 0x1170ad00, a javax.swing.plaf.meta
l.MetalUtils$GradientPainter),
which is held by "AWT-EventQueue-3472"
"AWT-EventQueue-3472":
waiting to lock monitor 0x02d79b44 (object 0x109e7c38, a java.awt.Component$AW
TTreeLock),
which is held by "AWT-EventQueue-4"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-4":
at javax.swing.plaf.metal.MetalUtils$GradientPainter.paint(MetalUtils.ja
va:239)
- waiting to lock <0x1170ad00> (a javax.swing.plaf.metal.MetalUtils$Grad
ientPainter)
at javax.swing.plaf.metal.MetalUtils.drawGradient(MetalUtils.java:203)
at javax.swing.plaf.metal.MetalScrollBarUI.oceanPaintThumb(MetalScrollBa
rUI.java:344)
at javax.swing.plaf.metal.MetalScrollBarUI.paintThumb(MetalScrollBarUI.j
ava:212)
at javax.swing.plaf.basic.BasicScrollBarUI.paint(BasicScrollBarUI.java:3
64)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
at javax.swing.JComponent.paintComponent(JComponent.java:740)
at javax.swing.JComponent.paint(JComponent.java:1003)
at javax.swing.JComponent.paintChildren(JComponent.java:840)
- locked <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1012)
at javax.swing.JComponent.paintChildren(JComponent.java:840)
- locked <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4937)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4883)
at javax.swing.JComponent.paint(JComponent.java:993)
at javax.swing.JComponent.paintChildren(JComponent.java:840)
- locked <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1012)
at javax.swing.JViewport.paint(JViewport.java:728)
at javax.swing.JComponent.paintChildren(JComponent.java:840)
- locked <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.JComponent.paint(JComponent.java:1012)
at jp.co.yokogawa.Stardom.UD.client.Message.CSDUDGRMessage.draw(CSDUDGRM
essage.java:609)
at jp.co.yokogawa.Stardom.UD.client.Message.CSDUDGrMsgAlarm.draw(CSDUDGr
MsgAlarm.java:429)
at jp.co.yokogawa.Stardom.UD.client.GrObjWnd.CSDUDPrimitiveList.allDraw(
CSDUDPrimitiveList.java:141)
at jp.co.yokogawa.Stardom.UD.client.GrObjWnd.CSDUDGrObjWnd.paint(CSDUDGr
ObjWnd.java:713)
at jp.co.yokogawa.Stardom.UD.client.GrObjWnd.CSDUDGrObjWnd.update(CSDUDG
rObjWnd.java:681)
at sun.awt.RepaintArea.updateComponent(RepaintArea.java:239)
at sun.awt.RepaintArea.paint(RepaintArea.java:216)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:254)
at java.awt.Component.dispatchEventImpl(Component.java:4031)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
"AWT-EventQueue-3472":
at java.awt.Component.getGraphicsConfiguration(Component.java:814)
- waiting to lock <0x109e7c38> (a java.awt.Component$AWTTreeLock)
at javax.swing.plaf.metal.CachedPainter.paint(CachedPainter.java:68)
at javax.swing.plaf.metal.MetalUtils$GradientPainter.paint(MetalUtils.ja
va:249)
- locked <0x1170ad00> (a javax.swing.plaf.metal.MetalUtils$GradientPaint
er)
at javax.swing.plaf.metal.MetalUtils.drawGradient(MetalUtils.java:203)
at javax.swing.plaf.metal.MetalButtonUI.update(MetalButtonUI.java:110)
at javax.swing.JComponent.paintComponent(JComponent.java:740)
at javax.swing.JComponent.paint(JComponent.java:1003)
at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4930)
at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4883)
at javax.swing.JComponent._paintImmediately(JComponent.java:4826)
at javax.swing.JComponent.paintImmediately(JComponent.java:4633)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(System
EventQueueUtilities.java:114)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Found 1 deadlock.
###@###.### 11/3/04 22:15 GMT
- backported by
-
JDK-2143105 REGRESSION: AWT-EventQueue Deadlock AWTTreeLock/MetalUtils$GradientPainter
- Closed