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

XAWT deadlock if using Shift F-10 on Swingset startup.

XMLWordPrintable

    • b35
    • x86
    • linux_redhat_9.0

      Just run SwingSet demo with XAWT and as it comes up, after the splash is gone,
      immediately press Shift+F10, and hit escape, keep repeating this until you
      get the hang. It happens once in every three tries. It caused a classic circular
      deadlock as reported by hotspot below :

      Java stack information for the threads listed above:
      ===================================================
      "AWT-EventQueue-0":
              at sun.awt.X11.XBaseWindow.toGlobal(XBaseWindow.java:539)
              - waiting to lock <0x499436a0> (a java.lang.Class)
              at sun.awt.X11.XBaseWindow.toGlobal(XBaseWindow.java:555)
              at sun.awt.X11.XWindow.getLocationOnScreen(XWindow.java:879)
              at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:1656
      )
              at java.awt.Component.getLocationOnScreen(Component.java:1641)
              - locked <0x45c15f70> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JPopupMenu.show(JPopupMenu.java:973)
              at SwingSet2$ActivatePopupMenuAction.actionPerformed(SwingSet2.java:1185
      )
              at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1592)
              at javax.swing.JComponent.processKeyBinding(JComponent.java:2689)
              at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:255)
              at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:2
      04)
              at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.
      java:2766)
              at javax.swing.JComponent.processKeyBindings(JComponent.java:2758)
              at javax.swing.JComponent.processKeyEvent(JComponent.java:2652)
              at java.awt.Component.processEvent(Component.java:5240)
              at java.awt.Container.processEvent(Container.java:1961)
              at java.awt.Component.dispatchEventImpl(Component.java:3931)
              at java.awt.Container.dispatchEventImpl(Container.java:2019)
              at java.awt.Component.dispatchEvent(Component.java:3779)
              at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.ja
      va:1804)
              at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboard
      FocusManager.java:668)
              at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeybo
      ardFocusManager.java:916)
              at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeybo
      ardFocusManager.java:794)
              at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc
      usManager.java:632)
              at java.awt.Component.dispatchEventImpl(Component.java:3817)
              at java.awt.Container.dispatchEventImpl(Container.java:2019)
              at java.awt.Window.dispatchEventImpl(Window.java:1739)
              at java.awt.Component.dispatchEvent(Component.java:3779)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
      read.java:231)
              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-XAWT":
              at sun.awt.X11.XToolkit.getParentFramePeer(XToolkit.java:424)
              - waiting to lock <0x45c15f70> (a java.awt.Component$AWTTreeLock)
              at sun.awt.X11.XWindow.handleKeyPress(XWindow.java:776)
              at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:783)
              at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:749)
              at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:394)
              at sun.awt.X11.XToolkit.run(XToolkit.java:493)
              at sun.awt.X11.XToolkit.run(XToolkit.java:438)
              at java.lang.Thread.run(Thread.java:565)

      Found 1 deadlock.


      Rest of the Threads :

      Full thread dump Java HotSpot(TM) Client VM (1.5.0-beta-b30 mixed mode):

      "DestroyJavaVM" prio=1 tid=0x0805a8e0 nid=0x5ad1 waiting on condition [0x0000000
      0..0xbfffb170]

      "Thread-1" prio=1 tid=0x083bac70 nid=0x5ae3 waiting for monitor entry [0xbdbfe00
      0..0xbdbff57c]
              at java.awt.Container.getComponent(Container.java:277)
              - waiting to lock <0x45c15f70> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JViewport.getView(JViewport.java:932)
              at javax.swing.JViewport.scrollRectToVisible(JViewport.java:344)
              at javax.swing.JComponent.scrollRectToVisible(JComponent.java:2903)
              at javax.swing.JList.ensureIndexIsVisible(JList.java:953)
              at javax.swing.plaf.basic.BasicComboPopup.setListSelection(BasicComboPop
      up.java:1110)
              at javax.swing.plaf.basic.BasicComboPopup.access$200(BasicComboPopup.jav
      a:46)
              at javax.swing.plaf.basic.BasicComboPopup$Handler.itemStateChanged(Basic
      ComboPopup.java:947)
              at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1162)
              at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1219)
              at javax.swing.JComboBox.contentsChanged(JComboBox.java:1266)
              at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.j
      ava:100)
              at javax.swing.DefaultComboBoxModel.setSelectedItem(DefaultComboBoxModel
      .java:88)
              at javax.swing.JComboBox.setSelectedItem(JComboBox.java:551)
              at ComboBoxDemo.actionPerformed(ComboBoxDemo.java:358)
              at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1197)
              at javax.swing.JComboBox.setSelectedItem(JComboBox.java:561)
              at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:597)
              at ComboBoxDemo.createComboBoxDemo(ComboBoxDemo.java:202)
              at ComboBoxDemo.<init>(ComboBoxDemo.java:92)
              at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
              at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
      orAccessorImpl.java:39)
              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
      onstructorAccessorImpl.java:27)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:414)
              at SwingSet2.loadDemo(SwingSet2.java:790)
              at SwingSet2.loadDemos(SwingSet2.java:93)
              at SwingSet2$DemoLoadThread.run(SwingSet2.java:1344)

      "Image Fetcher 1" daemon prio=1 tid=0x08360b28 nid=0x5ae2 in Object.wait() [0xbd
      dff000..0xbddff4fc]
              at java.lang.Object.wait(Native Method)
              - waiting on <0x45c455c8> (a java.util.Vector)
              at sun.awt.image.ImageFetcher.nextImage(ImageFetcher.java:114)
              - locked <0x45c455c8> (a java.util.Vector)
              at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:167)
              at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)

      "Image Fetcher 0" daemon prio=1 tid=0x08407a00 nid=0x5ae1 in Object.wait() [0xbd
      fff000..0xbdfff67c]
              at java.lang.Object.wait(Native Method)
              - waiting on <0x45c455c8> (a java.util.Vector)
              at sun.awt.image.ImageFetcher.nextImage(ImageFetcher.java:114)
              - locked <0x45c455c8> (a java.util.Vector)
              at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:167)
              at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)

      "TimerQueue" daemon prio=1 tid=0x080def90 nid=0x5ae0 in Object.wait() [0xbe5ff00
      0..0xbe5ff5fc]
              at java.lang.Object.wait(Native Method)
              - waiting on <0x45dc99e0> (a javax.swing.TimerQueue)
              at javax.swing.TimerQueue.run(TimerQueue.java:233)
              - locked <0x45dc99e0> (a javax.swing.TimerQueue)
              at java.lang.Thread.run(Thread.java:565)

      "AWT-EventQueue-0" prio=1 tid=0x083df3a8 nid=0x5ade waiting for monitor entry [0
      xbe1fe000..0xbe1ff77c]
              at sun.awt.X11.XBaseWindow.toGlobal(XBaseWindow.java:539)
              - waiting to lock <0x499436a0> (a java.lang.Class)
              at sun.awt.X11.XBaseWindow.toGlobal(XBaseWindow.java:555)
              at sun.awt.X11.XWindow.getLocationOnScreen(XWindow.java:879)
              at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:1656
      )
              at java.awt.Component.getLocationOnScreen(Component.java:1641)
              - locked <0x45c15f70> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JPopupMenu.show(JPopupMenu.java:973)
              at SwingSet2$ActivatePopupMenuAction.actionPerformed(SwingSet2.java:1185
      )
              at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1592)
              at javax.swing.JComponent.processKeyBinding(JComponent.java:2689)
              at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:255)
              at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:2
      04)
              at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.
      java:2766)
              at javax.swing.JComponent.processKeyBindings(JComponent.java:2758)
              at javax.swing.JComponent.processKeyEvent(JComponent.java:2652)
              at java.awt.Component.processEvent(Component.java:5240)
              at java.awt.Container.processEvent(Container.java:1961)
              at java.awt.Component.dispatchEventImpl(Component.java:3931)
              at java.awt.Container.dispatchEventImpl(Container.java:2019)
              at java.awt.Component.dispatchEvent(Component.java:3779)
              at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.ja
      va:1804)
              at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboard
      FocusManager.java:668)
              at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeybo
      ardFocusManager.java:916)
              at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeybo
      ardFocusManager.java:794)
              at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc
      usManager.java:632)
              at java.awt.Component.dispatchEventImpl(Component.java:3817)
              at java.awt.Container.dispatchEventImpl(Container.java:2019)
              at java.awt.Window.dispatchEventImpl(Window.java:1739)
              at java.awt.Component.dispatchEvent(Component.java:3779)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
              read.java:231)
              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-Shutdown" prio=1 tid=0x083de0e0 nid=0x5add in Object.wait() [0xbe3ff000..0x
      be3ff6fc]
              at java.lang.Object.wait(Native Method)
              - waiting on <0x45c3ae28> (a java.lang.Object)
              at java.lang.Object.wait(Object.java:468)
              at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
              - locked <0x45c3ae28> (a java.lang.Object)
              at java.lang.Thread.run(Thread.java:565)

      "AWT-XAWT" daemon prio=1 tid=0x083a94f8 nid=0x5adb waiting for monitor entry [0x
      be7ff000..0xbe7ff7fc]
              at sun.awt.X11.XToolkit.getParentFramePeer(XToolkit.java:424)
              - waiting to lock <0x45c15f70> (a java.awt.Component$AWTTreeLock)
              at sun.awt.X11.XWindow.handleKeyPress(XWindow.java:776)
              at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:783)
              at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:749)
              at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:394)
              at sun.awt.X11.XToolkit.run(XToolkit.java:493)
              at sun.awt.X11.XToolkit.run(XToolkit.java:438)
              at java.lang.Thread.run(Thread.java:565)

      "Java2D Disposer" daemon prio=1 tid=0x081ba408 nid=0x5ada in Object.wait() [0xbe
      9ff000..0xbe9ff57c]
              at java.lang.Object.wait(Native Method)
              - waiting on <0x45c36590> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
              - locked <0x45c36590> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
              at sun.java2d.Disposer.run(Disposer.java:107)
              at java.lang.Thread.run(Thread.java:565)

      "Low Memory Detector" daemon prio=1 tid=0x080c9138 nid=0x5ad8 runnable [0x000000
      00..0x00000000]

      "CompilerThread0" daemon prio=1 tid=0x080c7de8 nid=0x5ad7 waiting on condition [
      0x00000000..0xbeffeff4]

      "Signal Dispatcher" daemon prio=1 tid=0x080c3f50 nid=0x5ad6 waiting on condition
       [0x00000000..0x00000000]

      "Finalizer" daemon prio=1 tid=0x080bbb98 nid=0x5ad5 in Object.wait() [0xbf3ff000
      ..0xbf3ff6fc]
              at java.lang.Object.wait(Native Method)
              - waiting on <0x45c15478> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
              - locked <0x45c15478> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
              at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      "Reference Handler" daemon prio=1 tid=0x080bae58 nid=0x5ad4 in Object.wait() [0x
      bf5ff000..0xbf5ff87c]
              at java.lang.Object.wait(Native Method)
              - waiting on <0x45c152f0> (a java.lang.ref.Reference$Lock)
              at java.lang.Object.wait(Object.java:468)
              at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:118)
              - locked <0x45c152f0> (a java.lang.ref.Reference$Lock)

      "VM Thread" prio=1 tid=0x080b6450 nid=0x5ad3 runnable

      "VM Periodic Task Thread" prio=1 tid=0x080ca428 nid=0x5ad9 waiting on condition


            prssunw Prs Prs (Inactive)
            bino Bino George
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: