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

deadlock between getFontMetrics and getGraphicsConfiguration

    XMLWordPrintable

Details

    • generic
    • solaris_2.6

    Description

      Applications faeced to deadlock condition.
      The environments are follows:

        OS: Solaris 2.6 SPARC
        JRE: JRE 1.3.1_04
        Netscape: Netscape Communicator 4.78 + Java Plug-in

      The applications work fine on JRE 1.2.2.

      Follows are part of Java Thread Dump when it occured.

      Sample 1
      --------------------------------------------------------------------------------------------------------
      FOUND A JAVA LEVEL DEADLOCK:
      ----------------------------
      "AWT-EventQueue-1":
        waiting to lock monitor 0xa2088 (object 0xe8d7d1a0, a java.lang.Class),
        which is locked by "main"
      "main":
        waiting to lock monitor 0xa2440 (object 0xe534f9e8, a java.awt.Component$AWTTreeLock),
        which is locked by "AWT-EventQueue-1"

      JAVA STACK INFORMATION FOR THREADS LISTED ABOVE:
      ------------------------------------------------
      Java Stack for "AWT-EventQueue-1":
      ==========
              at sun.awt.font.NativeFontWrapper.getFontMetrics(Native Method)
              at sun.awt.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:155)
              at sun.awt.font.FontDesignMetrics.<init>(FontDesignMetrics.java:140)
              at sun.java2d.SunGraphics2D.makeFontMetrics(SunGraphics2D.java:599)
              at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:612)
              at java.awt.Graphics.getFontMetrics(Graphics.java:238)
              at javax.swing.plaf.basic.BasicLabelUI.paint(BasicLabelUI.java:132)
              at javax.swing.plaf.ComponentUI.update(ComponentUI.java:34)
              at javax.swing.JComponent.paintComponent(JComponent.java:390)
              at javax.swing.JComponent.paint(JComponent.java:682)
              at javax.swing.JComponent.paintChildren(JComponent.java:493)
              at javax.swing.JComponent.paint(JComponent.java:691)
              at javax.swing.JComponent.paintChildren(JComponent.java:493)
              at javax.swing.JComponent.paint(JComponent.java:691)
              at javax.swing.JComponent.paintChildren(JComponent.java:493)
              at javax.swing.JComponent.paint(JComponent.java:691)
              at javax.swing.JLayeredPane.paint(JLayeredPane.java:541)
              at javax.swing.JComponent.paintChildren(JComponent.java:493)
              at javax.swing.JComponent.paint(JComponent.java:664)
              at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:18)
              at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:49)
              at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:86)
              at java.awt.Container.paint(Container.java:955)
              at sun.awt.RepaintArea.paint(RepaintArea.java:293)
              at sun.awt.motif.MComponentPeer.handleEvent(MComponentPeer.java:344)
              at java.awt.Component.dispatchEventImpl(Component.java:2658)
              at java.awt.Container.dispatchEventImpl(Container.java:1208)
              at java.awt.Component.dispatchEvent(Component.java:2492)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:334)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:126)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:93)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:88)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:80)
      Java Stack for "main":
      ==========
              at java.awt.Window.getGraphicsConfiguration(Window.java:1161)
              at sun.awt.motif.MComponentPeer.pInitialize(Native Method)
              at sun.awt.motif.MComponentPeer.initialize(MComponentPeer.java:107)
              at sun.awt.motif.MComponentPeer.init(MComponentPeer.java:170)
              at sun.awt.motif.MWindowPeer.init(MWindowPeer.java:81)
              at sun.awt.motif.MFramePeer.<init>(MFramePeer.java:48)
              at sun.awt.motif.MEmbeddedFramePeer.<init>(MEmbeddedFramePeer.java:26)
              at sun.awt.motif.MToolkit.createEmbeddedFrame(MToolkit.java:200)
              at sun.awt.motif.MEmbeddedFrame.<init>(MEmbeddedFrame.java:29)
              at sun.plugin.navig.motif.MPluginEmbeddedFrame.<init>(MPluginEmbeddedFrame.java:33)
              at java.lang.reflect.Constructor.newInstance(Native Method)
              at sun.plugin.navig.motif.MotifAppletViewer.createFrame(MotifAppletViewer.java:275)
              at sun.plugin.navig.motif.MotifAppletViewer.setWindow(MotifAppletViewer.java:380)
              at sun.plugin.navig.motif.Plugin.doit(Plugin.java:276)
              at sun.plugin.navig.motif.Plugin.start(Plugin.java:90)

      Found 1 deadlock.
      --------------------------------------------------------------------------------------------------------

      Sample 2
      --------------------------------------------------------------------------------------------------------
      FOUND A JAVA LEVEL DEADLOCK:
      ----------------------------
      "AWT-EventQueue-0":
        waiting to lock monitor 0xa2168 (object 0xe8d7d1a0, a java.lang.Class),
        which is locked by "main"
      "main":
        waiting to lock monitor 0xa2520 (object 0xe534f9e8, a java.awt.Component$AWTTreeLock),
        which is locked by "AWT-EventQueue-0"

      JAVA STACK INFORMATION FOR THREADS LISTED ABOVE:
      ------------------------------------------------
      Java Stack for "AWT-EventQueue-0":
      ==========
              at sun.awt.font.NativeFontWrapper.getFontMetrics(Native Method)
              - waiting to lock <e8d7d1a0> (a java.lang.Class)
              at sun.awt.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:155)
              at sun.awt.font.FontDesignMetrics.<init>(FontDesignMetrics.java:140)
              at sun.java2d.SunGraphics2D.makeFontMetrics(SunGraphics2D.java:599)
              at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:612)
              at java.awt.Graphics.getFontMetrics(Graphics.java:238)
              at javax.swing.plaf.basic.BasicButtonUI.paint(BasicButtonUI.java:214)
              at javax.swing.plaf.ComponentUI.update(ComponentUI.java:34)
              at javax.swing.JComponent.paintComponent(JComponent.java:390)
              at javax.swing.JComponent.paint(JComponent.java:682)
              at javax.swing.JComponent.paintChildren(JComponent.java:493)
              at javax.swing.JComponent.paint(JComponent.java:691)
              at javax.swing.JComponent.paintChildren(JComponent.java:493)
              at javax.swing.JComponent.paint(JComponent.java:691)
              at javax.swing.JComponent.paintChildren(JComponent.java:493)
              at javax.swing.JComponent.paint(JComponent.java:691)
              at javax.swing.JLayeredPane.paint(JLayeredPane.java:541)
              at javax.swing.JComponent.paintChildren(JComponent.java:493)
              at javax.swing.JComponent.paint(JComponent.java:664)
              at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:18)
              at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:49)
              at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:86)
              at java.awt.Container.paint(Container.java:955)
              at sun.awt.RepaintArea.paint(RepaintArea.java:293)
              at sun.awt.motif.MComponentPeer.handleEvent(MComponentPeer.java:344)
              at java.awt.Component.dispatchEventImpl(Component.java:2658)
              at java.awt.Container.dispatchEventImpl(Container.java:1208)
              at java.awt.Window.dispatchEventImpl(Window.java:923)
              at java.awt.Component.dispatchEvent(Component.java:2492)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:334)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:126)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:93)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:88)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:80)
      Java Stack for "main":
      ==========
              at java.awt.Window.getGraphicsConfiguration(Window.java:1161)
              at sun.awt.motif.MComponentPeer.pInitialize(Native Method)
              at sun.awt.motif.MComponentPeer.initialize(MComponentPeer.java:107)
              at sun.awt.motif.MComponentPeer.init(MComponentPeer.java:170)
              at sun.awt.motif.MWindowPeer.init(MWindowPeer.java:81)
              at sun.awt.motif.MFramePeer.<init>(MFramePeer.java:48)
              at sun.awt.motif.MEmbeddedFramePeer.<init>(MEmbeddedFramePeer.java:26)
              at sun.awt.motif.MToolkit.createEmbeddedFrame(MToolkit.java:200)
              at sun.awt.motif.MEmbeddedFrame.<init>(MEmbeddedFrame.java:29)
              at sun.plugin.navig.motif.MPluginEmbeddedFrame.<init>(MPluginEmbeddedFrame.java:33)
              at java.lang.reflect.Constructor.newInstance(Native Method)
              at sun.plugin.navig.motif.MotifAppletViewer.createFrame(MotifAppletViewer.java:275)
              at sun.plugin.navig.motif.MotifAppletViewer.setWindow(MotifAppletViewer.java:380)
              at sun.plugin.navig.motif.Plugin.doit(Plugin.java:276)
              at sun.plugin.navig.motif.Plugin.start(Plugin.java:90)

      Found 1 deadlock.
      --------------------------------------------------------------------------------------------------------

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              duke J. Duke
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: