Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6190373

REGRESSION: AWT-EventQueue Deadlock AWTTreeLock/MetalUtils$GradientPainter

XMLWordPrintable

    • b46
    • x86
    • windows_xp

        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

              svioletsunw Scott Violet (Inactive)
              ksoshals Kirill Soshalskiy (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: