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

Java deadlock with EventDispatchThread

    XMLWordPrintable

    Details

    • Subcomponent:
    • CPU:
      sparc
    • OS:
      solaris_2.6

      Description

       nid=0x1 waiting for monitor entry [0xefffc000..0xefffdcfc]
              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)

      "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:
      ----------------------------
      "main":
        waiting to lock monitor 0xa2520 (object 0xe534f950, a java.awt.Component$AWTTreeLock),
        which is locked by "AWT-EventQueue-1"
      "AWT-EventQueue-1":
        waiting to lock monitor 0xa2130 (object 0xe8d7d1a0, a java.lang.Class)
        in JNI, which is locked by "main"

      JAVA STACK INFORMATION FOR THREADS LISTED ABOVE:
      ------------------------------------------------
      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)
      Java Stack for "AWT-EventQueue-1":
      ==========
              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.enable(Component.java:786)
              - locked <e534f950> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JComponent.enable(JComponent.java:2485)
              at java.awt.Component.enable(Component.java:804)
              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:3130)
              at OPE2010_SystemSelector.access$600(OPE2010_SystemSelector.java:135)
              at OPE2010_SystemSelector$2.run(OPE2010_SystemSelector.java:1719)
              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)

      Found 1 deadlock.
      Java applets fall into deadlock situation though they call GUI methods
      via EventDispatchThread.

      It works fine on JRE 1.2.2.
      On JRE 1.3.1, the deadlocks were occured.

      Full thread dump:

      "Image Fetcher 3" daemon prio=4 tid=0x784fd8 nid=0x81 waiting for monitor entry [0xe3501000..0xe3501a38]
              at sun.plugin.navig.motif.Worker.showStatus(Worker.java:109)
              at sun.plugin.navig.motif.MotifAppletContext.showStatus(MotifAppletContext.java:48)
              at sun.plugin.AppletViewer.println(AppletViewer.java:1466)
              at sun.plugin.usability.Trace.firePrintlnEvent(Trace.java:713)
              at sun.plugin.usability.Trace.netPrintln(Trace.java:329)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connectStep1(HttpURLConnection.java:193)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connect(HttpURLConnection.java:131)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(HttpURLConnection.java:305)
              at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:107)
              at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246)
              at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:167)
              at sun.awt.image.ImageFetcher.run(ImageFetcher.java:135)

      "Image Fetcher 2" daemon prio=4 tid=0x784e98 nid=0x80 waiting for monitor entry [0xe3601000..0xe3601a38]
              at sun.plugin.navig.motif.Worker.showStatus(Worker.java:109)
              at sun.plugin.navig.motif.MotifAppletContext.showStatus(MotifAppletContext.java:48)
              at sun.plugin.AppletViewer.println(AppletViewer.java:1466)
              at sun.plugin.usability.Trace.firePrintlnEvent(Trace.java:713)
              at sun.plugin.usability.Trace.netPrintln(Trace.java:329)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connectStep1(HttpURLConnection.java:193)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connect(HttpURLConnection.java:131)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(HttpURLConnection.java:305)
              at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:107)
              at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246)
              at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:167)
              at sun.awt.image.ImageFetcher.run(ImageFetcher.java:135)

      "Image Fetcher 1" daemon prio=4 tid=0x784d58 nid=0x7f waiting for monitor entry [0xe3701000..0xe3701a38]
              at sun.plugin.navig.motif.Worker.setX11Property(Native Method)
              at sun.plugin.navig.motif.Worker.pushRequest(Worker.java:58)
              at sun.plugin.navig.motif.Worker.showStatus(Worker.java:123)
              at sun.plugin.navig.motif.MotifAppletContext.showStatus(MotifAppletContext.java:48)
              at sun.plugin.AppletViewer.println(AppletViewer.java:1466)
              at sun.plugin.usability.Trace.firePrintlnEvent(Trace.java:713)
              at sun.plugin.usability.Trace.netPrintln(Trace.java:329)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connectStep1(HttpURLConnection.java:193)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connect(HttpURLConnection.java:131)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(HttpURLConnection.java:305)
              at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:107)
              at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246)
              at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:167)
              at sun.awt.image.ImageFetcher.run(ImageFetcher.java:135)

      "Image Fetcher 0" daemon prio=4 tid=0x3ac3c0 nid=0x7e waiting on monitor [0xe4180000..0xe4181a38]
              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.findCookieForURL(Worker.java:304)
              at sun.plugin.ActivatorCookieHandler.findCookieForURL(Native Method)
              at sun.plugin.ActivatorCookieHandler.getCookieInfo(ActivatorCookieHandler.java:111)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connectStep2(HttpURLConnection.java:269)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.connect(HttpURLConnection.java:134)
              at sun.plugin.protocol.jdk12.http.HttpURLConnection.getInputStream(HttpURLConnection.java:305)
              at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:107)
              at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246)
              at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:167)
              at sun.awt.image.ImageFetcher.run(ImageFetcher.java:135)

      "thread applet-OPE2070_ServerConfigSAS" prio=4 tid=0x69b198 nid=0x7c waiting for monitor entry [0xe3801000..0xe3801a38]
              at java.awt.Component.disable(Component.java:817)
              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 OPE2070_ServerConfigSAS.initColor(OPE2070_ServerConfigSAS.java:1836)
              at OPE2070_ServerConfigSAS.setScreen(OPE2070_ServerConfigSAS.java:1175)
              at OPE2070_ServerConfigSAS.createPanel(OPE2070_ServerConfigSAS.java:1000)
              at OPE2070_ServerConfigSAS.init(OPE2070_ServerConfigSAS.java:236)
              at sun.applet.AppletPanel.run(AppletPanel.java:339)
              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-30" prio=4 tid=0x732668 nid=0x77 waiting on monitor [0xe3101000..0xe3101a38]
              at java.lang.Object.wait(Native Method)
              at ocse2.SocketComm.recvMsg(SocketComm.java:165)
              at ocse2.CommDriver.run(CommDriver.java:224)

      "Thread-25" prio=4 tid=0x7957f0 nid=0x66 waiting on monitor [0xe3201000..0xe3201a38]
              at java.lang.Object.wait(Native Method)
              at ocse2.SocketComm.recvMsg(SocketComm.java:165)
              at ocse2.CommDriver.run(CommDriver.java:224)

      "Thread-22" prio=4 tid=0x695d80 nid=0x58 waiting on monitor [0xe3301000..0xe3301a38]
              at java.lang.Object.wait(Native Method)
              at ocse2.SocketComm.recvMsg(SocketComm.java:165)
              at ocse2.CommDriver.run(CommDriver.java:224)

      "Thread-5" prio=4 tid=0x593948 nid=0x21 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:224)

      "Thread-6" prio=4 tid=0x68a460 nid=0x20 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)

      "TimerQueue" daemon prio=4 tid=0x5b9ed8 nid=0x1d waiting on monitor [0xe4081000..0xe4081a38]
              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=0x5bf318 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=0x5bde18 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=0x5bd460 nid=0x17 waiting for monitor entry [0xe3f80000..0xe3f81a38]
              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.enable(Component.java:786)
              at javax.swing.JComponent.enable(JComponent.java:2485)
              at java.awt.Component.enable(Component.java:804)
              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:3130)
              at OPE2010_SystemSelector.access$600(OPE2010_SystemSelector.java:135)
              at OPE2010_SystemSelector$2.run(OPE2010_SystemSelector.java:1719)
              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)

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

      "Screen Updater" prio=5 tid=0x51c738 nid=0x13 waiting on monitor [0xe4381000..0xe4381a38]
              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-1" prio=5 tid=0x518f10 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=0x518920 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=0x417350 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=0x37db58 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=0x21cfe0 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=0x150e58 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=0x150cd8 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 runnable [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

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: