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

java plug-in falls into deadlock situation when I open ControlPanel.html

XMLWordPrintable

    • sparc
    • solaris_9

      Java plug-in falls into deadlock situation when I open ControlPanel.html.

      When I opened the ControlPanel.html 100 times, java plug-in felt
      into deadlock 8 times. The ControlPanel.html is in the directory
      installed JRE.
      $JAVA_HOME/ControlPanel.html

      Following is my machine environment.
        - SunBlade100 ( CPU : 500MHz / Memory : 256MB )
        - Solaris 9
        - Netscape 4.78
        - JRE 1.3.1_06-b01
        
      I tested following procedure.
      1) Starting Netscape
           /usr/dt/bin/netscape

      2) Opening ControlPanel.html
           $JAVA_HOME/ControlPanel.html

      3) If java plug-in dose not start, picking up thread dump.
           /usr/bin/pkill -QUIT java_vm

      4) repeat 1)-3)

      I picked up 6 thread dumps.

      Following is one thread dump in them.

      -------------------- thread dump -------------------------------------------

      Full thread dump:

      "Thread-2" prio=5 tid=0x3f2320 nid=0x10 waiting on monitor [0xf41ff000..0xf41ffc
      68]
              at java.lang.Thread.sleep(Native Method)
              at sun.plugin.navig.motif.Plugin$Watcher.run(Plugin.java:506)

      "Thread-1" prio=5 tid=0x3c5f90 nid=0xf waiting on monitor [0xf42ff000..0xf42ffc6
      8]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at com.sun.media.sound.EventDispatcher.dispatchEvents(EventDispatcher.ja
      va:139)
              at com.sun.media.sound.EventDispatcher.run(EventDispatcher.java:190)

      "Thread-0" prio=5 tid=0x3c5da8 nid=0xe waiting on monitor [0xf43ff000..0xf43ffc6
      8]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at com.sun.media.sound.EventDispatcher.dispatchEvents(EventDispatcher.ja
      va:139)
              at com.sun.media.sound.EventDispatcher.run(EventDispatcher.java:190)

      "TimerQueue" daemon prio=5 tid=0x302fa0 nid=0xd waiting on monitor [0xf44ff000..
      0xf44ffc68]
              at java.lang.Object.wait(Native Method)
              at javax.swing.TimerQueue.run(TimerQueue.java:228)
              at java.lang.Thread.run(Thread.java:479)

      "Main Console Writer" prio=6 tid=0x2c4900 nid=0xc waiting on monitor [0xf45ff000
      ..0xf45ffc68]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at sun.plugin.MainConsoleWriter.run(MainConsoleWriter.java:65)
              at java.lang.Thread.run(Thread.java:479)

      "AWT-Motif" prio=6 tid=0x265778 nid=0xb waiting for monitor entry [0xf46ff000..0
      xf46ffc68]
              at sun.awt.motif.MToolkit.run(Native Method)
              at java.lang.Thread.run(Thread.java:479)

      "SunToolkit.PostEventQueue-0" prio=6 tid=0x1b0d80 nid=0xa waiting on monitor [0x
      f47ff000..0xf47ffc68]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at sun.awt.PostEventQueue.run(SunToolkit.java:486)

      "AWT-EventQueue-0" prio=6 tid=0x1b0808 nid=0x9 waiting for monitor entry [0xf48f
      e000..0xf48ffc68]
              at sun.awt.font.NativeFontWrapper.getAdvance(Native Method)
              at sun.awt.font.FontDesignMetrics.handleCharWidth(FontDesignMetrics.java
      :210)
              at sun.awt.font.FontDesignMetrics.charWidth(FontDesignMetrics.java:241)
              at javax.swing.text.Utilities.getTabbedTextWidth(Utilities.java:111)
              at javax.swing.text.PlainView.getLineWidth(PlainView.java:566)
              at javax.swing.text.PlainView.getPreferredSpan(PlainView.java:199)
              at javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(BasicTex
      tUI.java:1084)
              at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:
      685)
              at javax.swing.JComponent.getPreferredSize(JComponent.java:985)
              at javax.swing.JTextArea.getPreferredSize(JTextArea.java:614)
              at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:74
      7)
              at java.awt.Container.layout(Container.java:681)
              at java.awt.Container.doLayout(Container.java:671)
              at java.awt.Container.validateTree(Container.java:745)
              at java.awt.Container.validate(Container.java:723)
              at sun.plugin.ConsoleWindow.setScrollPosition(ConsoleWindow.java:648)
              at sun.plugin.ConsoleWindow$19.run(ConsoleWindow.java:458)
              at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:149)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:332)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
      read.java:126)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
      ad.java:93)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:88)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:80)

      "Signal Dispatcher" daemon prio=10 tid=0xa5f98 nid=0x7 waiting on monitor [0..0]

      "Finalizer" daemon prio=8 tid=0xa0c70 nid=0x4 waiting on monitor [0xfb17f000..0x
      fb17fc68]
              at java.lang.Object.wait(Native Method)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:103)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
              at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:157)

      "Reference Handler" daemon prio=10 tid=0xa02b8 nid=0x3 waiting on monitor [0xfb2
      7f000..0xfb27fc68]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:105)

      "main" prio=5 tid=0x26280 nid=0x1 waiting for monitor entry [0xffbfa000..0xffbfb
      d04]
              at java.awt.Window.getGraphicsConfiguration(Window.java:1162)
              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>(MPluginEmbeddedFra
      me.java:33)
              at java.lang.reflect.Constructor.newInstance(Native Method)
              at sun.plugin.navig.motif.MotifAppletViewer.createFrame(MotifAppletViewe
      r.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)

      "VM Thread" prio=5 tid=0x9f650 nid=0x2 runnable

      "VM Periodic Task Thread" prio=10 tid=0xa4da8 nid=0x5 waiting on monitor
      "Suspend Checker Thread" prio=10 tid=0xa56a0 nid=0x6 runnable

      FOUND A JAVA LEVEL DEADLOCK:
      ----------------------------
      "main":
        waiting to lock monitor 0xa3828 (object 0xf57870e8, a java.awt.Component$AWTTr
      eeLock),
        which is locked by "AWT-EventQueue-0"
      "AWT-EventQueue-0":
        waiting to lock monitor 0xa36a0 (object 0xf917c8c0, a java.lang.Class),
        which is locked by "main"

      JAVA STACK INFORMATION FOR THREADS LISTED ABOVE:
      ------------------------------------------------
      Java Stack for "main":
      ==========
              at java.awt.Window.getGraphicsConfiguration(Window.java:1162)
              - waiting to lock <f57870e8> (a java.awt.Component$AWTTreeLock)
              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>(MPluginEmbeddedFra
      me.java:33)
              at java.lang.reflect.Constructor.newInstance(Native Method)
              at sun.plugin.navig.motif.MotifAppletViewer.createFrame(MotifAppletViewe
      r.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)
      Java Stack for "AWT-EventQueue-0":
      ==========
              at sun.awt.font.NativeFontWrapper.getAdvance(Native Method)
              - waiting to lock <f917c8c0> (a java.lang.Class)
              at sun.awt.font.FontDesignMetrics.handleCharWidth(FontDesignMetrics.java
      :210)
              at sun.awt.font.FontDesignMetrics.charWidth(FontDesignMetrics.java:241)
              at javax.swing.text.Utilities.getTabbedTextWidth(Utilities.java:111)
              at javax.swing.text.PlainView.getLineWidth(PlainView.java:566)
              at javax.swing.text.PlainView.getPreferredSpan(PlainView.java:199)
              at javax.swing.plaf.basic.BasicTextUI$RootView.getPreferredSpan(BasicTex
      tUI.java:1084)
              at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:
      685)
              at javax.swing.JComponent.getPreferredSize(JComponent.java:985)
              at javax.swing.JTextArea.getPreferredSize(JTextArea.java:614)
              at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:74
      7)
              at java.awt.Container.layout(Container.java:681)
              at java.awt.Container.doLayout(Container.java:671)
              at java.awt.Container.validateTree(Container.java:745)
              at java.awt.Container.validate(Container.java:723)
              - locked <f57870e8> (a java.awt.Component$AWTTreeLock)
              at sun.plugin.ConsoleWindow.setScrollPosition(ConsoleWindow.java:648)
              at sun.plugin.ConsoleWindow$19.run(ConsoleWindow.java:458)
              at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:149)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:332)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
      read.java:126)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
      ad.java:93)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:88)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:80)

      Found 1 deadlock.

      ----------- the end of thread dump ------------------------------

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

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: