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

Application falls into deadlock situation via AWTTreeLock

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P4
    • Resolution: Not an Issue
    • Affects Version/s: 1.3.1
    • Fix Version/s: None
    • Component/s: client-libs
    • Subcomponent:
    • CPU:
      sparc
    • OS:
      solaris_2.6

      Description

        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)

      "VM Thread" prio=5 tid=0xa0950 nid=0x4 runnable

      "VM Periodic Task Thread" prio=10 tid=0xa4b70 nid=0x8 waiting on monitor
      "Suspend Checker Thread" prio=10 tid=0xa6e38 nid=0x9 runnable

      FOUND A JAVA LEVEL DEADLOCK:
      ----------------------------
      "Thread-5":
        waiting to lock monitor 0xa2130 (object 0xe8d7d1a0, a java.lang.Class)
        in JNI, which is locked by "main"
      "main":
        waiting to lock monitor 0xa2360 (object 0xe534f948, a java.awt.Component$AWTTreeLock),
        which is locked by "Thread-5"

      JAVA STACK INFORMATION FOR THREADS LISTED ABOVE:
      ------------------------------------------------
      Java Stack for "Thread-5":
      ==========
              at sun.awt.motif.MGlobalCursorManager.findHeavyweightUnderCursor(Native Method)
              at sun.awt.motif.MGlobalCursorManager.findHeavyweightUnderCursor(MGlobalCursorManager.java:57)
              at sun.awt.GlobalCursorManager._updateCursor(GlobalCursorManager.java:177)
              at sun.awt.GlobalCursorManager.updateCursorImmediately(GlobalCursorManager.java:86)
              at java.awt.Component.disable(Component.java:822)
              - locked <e534f948> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JComponent.disable(JComponent.java:2499)
              at java.awt.Component.enable(Component.java:806)
              at java.awt.Component.setEnabled(Component.java:771)
              at javax.swing.JComponent.setEnabled(JComponent.java:1871)
              at javax.swing.AbstractButton.setEnabled(AbstractButton.java:1527)
              at OPE2010_SystemSelector.ctrlMenuButton(OPE2010_SystemSelector.java:2831)
              at OPE2010_SystemSelector.ctrlMenuButton(OPE2010_SystemSelector.java:2840)
              at OPE2010_SystemSelector.setEnabledButtons_Error(OPE2010_SystemSelector.java:1538)
              at OPE2010_DataControl.eventSequenceDone(OPE2010_DataControl.java:625)
              at OPE2010_CommManager.fireEvent(OPE2010_CommManager.java:202)
              at OPE2010_CommManager.eventReceived(OPE2010_CommManager.java:617)
              at ocse2.CommDriver.fireEvent(CommDriver.java:388)
              at ocse2.CommDriver.run(CommDriver.java:245)
      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.
      Application falls into deadlock situation when it runs on JRE 1.3.1 envoronment.
      It works fine on JRE 1.2.2. Customer claims us about compatibility of JRE.
      All windows of this application freezed (white/gray out) suddenly.
      It seems that Screen Updater is not running.

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

      Following is the Java Thread Dump of java_vm when the phenomenon is occured.

      Full thread dump:

      "" prio=4 tid=0x7d1c40 nid=0x37 waiting on monitor [0xe3401000..0xe3401a38]
              at java.lang.Thread.sleep(Native Method)
              at OPE2050_ServerMonitorControl.run(OPE2050_ServerMonitorControl.java:3901)
              at java.lang.Thread.run(Thread.java:479)

      "Thread-18" prio=4 tid=0x78a720 nid=0x36 waiting on monitor [0xe30ff000..0xe3101a38]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at sun.plugin.navig.motif.Worker.waitForResponse(Worker.java:632)
              at sun.plugin.navig.motif.Worker.getCacheFileForURL(Worker.java:251)
              at sun.plugin.CacheHandler.getCacheFilename(Native Method)
              at sun.plugin.CacheHandler.getCacheFile(CacheHandler.java:15)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection$FileCreator.run(HttpURLConnection.java:385)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connect(HttpURLConnection.java:144)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(HttpURLConnection.java:305)
              at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:235)
              at sun.applet.AppletClassLoader.getBytes(AppletClassLoader.java:214)
              at sun.applet.AppletClassLoader.access$100(AppletClassLoader.java:37)
              at sun.applet.AppletClassLoader$1.run(AppletClassLoader.java:133)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:130)
              at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:260)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:294)
              at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:107)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
              at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:463)
              at sun.applet.AppletPanel.createApplet(AppletPanel.java:581)
              at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1299)
              at sun.applet.AppletPanel.runLoader(AppletPanel.java:510)
              at sun.applet.AppletPanel.run(AppletPanel.java:288)
              at sun.plugin.navig.motif.MotifAppletViewer.maf_run(MotifAppletViewer.java:119)
              at sun.plugin.navig.motif.MotifAppletViewer.run(MotifAppletViewer.java:115)
              at java.lang.Thread.run(Thread.java:479)

      "thread applet-sv25/control/linestatus/blockade/OPE3092_BlockadeRegistration" prio=4 tid=0x78a860 nid=0x35 waiting on monitor [0xe3201000..0xe3201a38]
              at java.lang.Object.wait(Native Method)
              at java.lang.Thread.join(Thread.java:929)
              at java.lang.Thread.join(Thread.java:982)
              at sun.applet.AppletPanel.run(AppletPanel.java:323)
              at sun.plugin.navig.motif.MotifAppletViewer.maf_run(MotifAppletViewer.java:119)
              at sun.plugin.navig.motif.MotifAppletViewer.run(MotifAppletViewer.java:115)
              at java.lang.Thread.run(Thread.java:479)

      "Thread-17" prio=4 tid=0x79f358 nid=0x31 waiting on monitor [0xe3b81000..0xe3b81a38]
              at java.lang.Object.wait(Native Method)
              at ocse2.SocketComm.recvMsg(SocketComm.java:165)
              at ocse2.CommDriver.run(CommDriver.java:220)

      "thread applet-OPE2050_ServerMonitorControl" prio=4 tid=0xf2c20 nid=0x29 waiting on monitor [0xe3501000..0xe3501a38]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at sun.applet.AppletPanel.getNextEvent(AppletPanel.java:264)
              at sun.applet.AppletPanel.run(AppletPanel.java:296)
              at sun.plugin.navig.motif.MotifAppletViewer.maf_run(MotifAppletViewer.java:119)
              at sun.plugin.navig.motif.MotifAppletViewer.run(MotifAppletViewer.java:115)
              at java.lang.Thread.run(Thread.java:479)

      "Thread-9" prio=4 tid=0x5850b0 nid=0x27 waiting on monitor [0xe4181000..0xe4181a38]
              at java.lang.Object.wait(Native Method)
              at ocse2.SocketComm.recvMsg(SocketComm.java:165)
              at ocse2.CommDriver.run(CommDriver.java:220)

      "Thread-8" prio=4 tid=0x351348 nid=0x25 waiting on monitor [0xe3601000..0xe3601a38]
              at java.lang.Object.wait(Native Method)
              at ocse2.SocketComm.recvMsg(SocketComm.java:165)
              at ocse2.CommDriver.run(CommDriver.java:220)

      "thread applet-OPE2070_ServerConfigSAS" prio=4 tid=0x705700 nid=0x22 waiting on monitor [0xe3701000..0xe3701a38]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at sun.applet.AppletPanel.getNextEvent(AppletPanel.java:264)
              at sun.applet.AppletPanel.run(AppletPanel.java:296)
              at sun.plugin.navig.motif.MotifAppletViewer.maf_run(MotifAppletViewer.java:119)
              at sun.plugin.navig.motif.MotifAppletViewer.run(MotifAppletViewer.java:115)
              at java.lang.Thread.run(Thread.java:479)

      "Thread-6" prio=4 tid=0x587260 nid=0x1f waiting on monitor [0xe3c81000..0xe3c81a38]
              at java.lang.Thread.sleep(Native Method)
              at symantec.itools.util.Timer.run(Timer.java:415)
              at java.lang.Thread.run(Thread.java:479)

      "Thread-5" prio=4 tid=0x584850 nid=0x1e waiting for monitor entry [0xe4080000..0xe4081a38]
              at sun.awt.motif.MGlobalCursorManager.findHeavyweightUnderCursor(Native Method)
              at sun.awt.motif.MGlobalCursorManager.findHeavyweightUnderCursor(MGlobalCursorManager.java:57)
              at sun.awt.GlobalCursorManager._updateCursor(GlobalCursorManager.java:177)
              at sun.awt.GlobalCursorManager.updateCursorImmediately(GlobalCursorManager.java:86)
              at java.awt.Component.disable(Component.java:822)
              at javax.swing.JComponent.disable(JComponent.java:2499)
              at java.awt.Component.enable(Component.java:806)
              at java.awt.Component.setEnabled(Component.java:771)
              at javax.swing.JComponent.setEnabled(JComponent.java:1871)
              at javax.swing.AbstractButton.setEnabled(AbstractButton.java:1527)
              at OPE2010_SystemSelector.ctrlMenuButton(OPE2010_SystemSelector.java:2831)
              at OPE2010_SystemSelector.ctrlMenuButton(OPE2010_SystemSelector.java:2840)
              at OPE2010_SystemSelector.setEnabledButtons_Error(OPE2010_SystemSelector.java:1538)
              at OPE2010_DataControl.eventSequenceDone(OPE2010_DataControl.java:625)
              at OPE2010_CommManager.fireEvent(OPE2010_CommManager.java:202)
              at OPE2010_CommManager.eventReceived(OPE2010_CommManager.java:617)
              at ocse2.CommDriver.fireEvent(CommDriver.java:388)
              at ocse2.CommDriver.run(CommDriver.java:245)

      "TimerQueue" daemon prio=4 tid=0x148fe8 nid=0x1c waiting on monitor [0xe3801000..0xe3801a38]
              at java.lang.Object.wait(Native Method)
              at javax.swing.TimerQueue.run(TimerQueue.java:228)
              at java.lang.Thread.run(Thread.java:479)

      "thread applet-OPE2010_SystemSelector" prio=4 tid=0x5b7370 nid=0x19 waiting on monitor [0xe3d81000..0xe3d81a38]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at sun.applet.AppletPanel.getNextEvent(AppletPanel.java:264)
              at sun.applet.AppletPanel.run(AppletPanel.java:296)
              at sun.plugin.navig.motif.MotifAppletViewer.maf_run(MotifAppletViewer.java:119)
              at sun.plugin.navig.motif.MotifAppletViewer.run(MotifAppletViewer.java:115)
              at java.lang.Thread.run(Thread.java:479)

      "SunToolkit.PostEventQueue-1" prio=4 tid=0x5b8268 nid=0x18 waiting on monitor [0xe3e81000..0xe3e81a38]
              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-1" prio=4 tid=0x5b78b0 nid=0x17 waiting for monitor entry [0xe3f80000..0xe3f81a38]
              at java.awt.Container.getComponent(Container.java:163)
              at javax.swing.JComponent.rectangleIsObscured(JComponent.java:3097)
              at javax.swing.JComponent.paint(JComponent.java:680)
              at javax.swing.JViewport.paint(JViewport.java:663)
              at javax.swing.JComponent.paintWithBuffer(JComponent.java:3873)
              at javax.swing.JComponent._paintImmediately(JComponent.java:3816)
              at javax.swing.JComponent.paintImmediately(JComponent.java:3667)
              at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:365)
              at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:119)
              at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:149)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:332)
              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)

      "Screen Updater" prio=5 tid=0x5b1c28 nid=0x14 waiting on monitor [0xe4281000..0xe4281a38]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java:71)
              at sun.awt.ScreenUpdater.run(ScreenUpdater.java:90)

      "Thread-2" prio=5 tid=0x51b948 nid=0x13 waiting on monitor [0xe4381000..0xe4381a38]
              at java.lang.Thread.sleep(Native Method)
              at sun.plugin.navig.motif.Plugin$Watcher.run(Plugin.java:506)

      "Thread-1" prio=5 tid=0x518050 nid=0x12 waiting on monitor [0xe4481000..0xe4481a38]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at com.sun.media.sound.EventDispatcher.dispatchEvents(EventDispatcher.java:139)
              at com.sun.media.sound.EventDispatcher.run(EventDispatcher.java:190)

      "Thread-0" prio=5 tid=0x5179f8 nid=0x11 waiting on monitor [0xe4581000..0xe4581a38]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:415)
              at com.sun.media.sound.EventDispatcher.dispatchEvents(EventDispatcher.java:139)
              at com.sun.media.sound.EventDispatcher.run(EventDispatcher.java:190)

      "TimerQueue" daemon prio=5 tid=0x416288 nid=0x10 waiting on monitor [0xe4681000..0xe4681a38]
              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=0x109258 nid=0xf waiting on monitor [0xe4781000..0xe4781a38]
              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=0x18a1c8 nid=0xe waiting for monitor entry [0xe4881000..0xe4881a38]
              at sun.awt.motif.MToolkit.run(Native Method)
              at java.lang.Thread.run(Thread.java:479)

      "SunToolkit.PostEventQueue-0" prio=6 tid=0x97330 nid=0xd waiting on monitor [0xe4981000..0xe4981a38]
              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=5 tid=0x96db0 nid=0xc waiting for monitor entry [0xe4a80000..0xe4a81a38]
              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.drawTabbedText(Utilities.java:74)
              at javax.swing.text.PlainView.drawUnselectedText(PlainView.java:132)
              at javax.swing.text.PlainView.drawElement(PlainView.java:92)
              at javax.swing.text.PlainView.drawLine(PlainView.java:64)
              at javax.swing.text.PlainView.paint(PlainView.java:272)
              at javax.swing.plaf.basic.BasicTextUI$RootView.paint(BasicTextUI.java:1165)
              at javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:518)
              at javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:652)
              at javax.swing.plaf.basic.BasicTextUI.update(BasicTextUI.java:631)
              at javax.swing.JComponent.paintComponent(JComponent.java:390)
              at javax.swing.JComponent.paint(JComponent.java:682)
              at javax.swing.JViewport.paintView(JViewport.java:1471)
              at javax.swing.JViewport.flushViewDirtyRegion(JViewport.java:1373)
              at javax.swing.JViewport.setViewPosition(JViewport.java:1012)
              at javax.swing.plaf.basic.BasicScrollPaneUI$VSBChangeListener.stateChanged(BasicScrollPaneUI.java:327)
              at javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:324)
              at javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:280)
              at javax.swing.DefaultBoundedRangeModel.setValue(DefaultBoundedRangeModel.java:145)
              at javax.swing.JScrollBar.setValue(JScrollBar.java:414)
              at sun.plugin.ConsoleWindow.setScrollPosition(ConsoleWindow.java:649)
              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(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)

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

      "Finalizer" daemon prio=8 tid=0xa2ef0 nid=0x7 waiting on monitor [0xeaf81000..0xeaf81a38]
              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=0xa15b8 nid=0x6 waiting on monitor [0xee281000..0xee281a38]
              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=0x27540 nid=0x1 waiting for monitor entry [0xefffc000..0xefffdd1c]
              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)
            

        Attachments

          Activity

            People

            Assignee:
            ehawkessunw Eric Hawkes (Inactive)
            Reporter:
            duke J. Duke (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: