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

Java 15: AWT deadlock with Java 6 installer

XMLWordPrintable

    • 6
    • b74
    • generic
    • generic

      The Java installer for the source code for Mustang is executing UI code on a non-UI thread. This can cause deadlocks on some systems.

      The stack trace below shows that the installer com.sun.tools.extractor.Installer calls the method doit which calls "showDialog" from the main thread. This code should be executed on the EDT via the use of SwingUtilities.invokeLater().

      Java stack information for the threads listed above:
      ===================================================
      "AWT-EventQueue-0":
              at java.awt.Component.invalidate(Component.java:2432)
              - waiting to lock <0x26cecde8> (a java.awt.Component$AWTTreeLock)
              at java.awt.Container.invalidate(Container.java:1419)
              at javax.swing.JComponent.revalidate(JComponent.java:4573)
              at javax.swing.JTable.tableRowsInserted(JTable.java:3097)
              at javax.swing.JTable.tableChanged(JTable.java:3020)
              at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:280)
              at javax.swing.table.AbstractTableModel.fireTableRowsInserted(AbstractTableModel.java:215)
              at apple.laf.AquaDirectoryModel$DoChangeContents.run(AquaDirectoryModel.java:447)
              - locked <0x265903e0> (a java.lang.Object)
              - locked <0x265c9db8> (a java.lang.Object)
              at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
              at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:275)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:196)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:190)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:182)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
      "main":
              at apple.laf.AquaDirectoryModel.getRowCount(AquaDirectoryModel.java:184)
              - waiting to lock <0x265903e0> (a java.lang.Object)
              at javax.swing.JTable.getRowCount(JTable.java:1797)
              at javax.swing.plaf.basic.BasicTableUI.createTableSize(BasicTableUI.java:1694)
              at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(BasicTableUI.java:1735)
              at javax.swing.JComponent.getPreferredSize(JComponent.java:1615)
              at javax.swing.JViewport.getViewSize(JViewport.java:1001)
              at javax.swing.ScrollPaneLayout.preferredLayoutSize(ScrollPaneLayout.java:476)
              at java.awt.Container.preferredSize(Container.java:1558)
              - locked <0x26cecde8> (a java.awt.Component$AWTTreeLock)
              at java.awt.Container.getPreferredSize(Container.java:1543)
              at javax.swing.JComponent.getPreferredSize(JComponent.java:1617)
              at java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:690)
              - locked <0x26cecde8> (a java.awt.Component$AWTTreeLock)
              at java.awt.Container.preferredSize(Container.java:1558)
              - locked <0x26cecde8> (a java.awt.Component$AWTTreeLock)
              at java.awt.Container.getPreferredSize(Container.java:1543)
              at javax.swing.JComponent.getPreferredSize(JComponent.java:1617)
              at java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:690)
              - locked <0x26cecde8> (a java.awt.Component$AWTTreeLock)
              at java.awt.Container.preferredSize(Container.java:1558)
              - locked <0x26cecde8> (a java.awt.Component$AWTTreeLock)
              at java.awt.Container.getPreferredSize(Container.java:1543)
              at javax.swing.JComponent.getPreferredSize(JComponent.java:1617)
              at javax.swing.BoxLayout.checkRequests(BoxLayout.java:434)
              at javax.swing.BoxLayout.layoutContainer(BoxLayout.java:375)
              - locked <0x26605920> (a javax.swing.BoxLayout)
              at java.awt.Container.layout(Container.java:1401)
              at java.awt.Container.doLayout(Container.java:1390)
              at java.awt.Container.validateTree(Container.java:1473)
              at java.awt.Container.validateTree(Container.java:1480)
              at java.awt.Container.validateTree(Container.java:1480)
              at java.awt.Container.validateTree(Container.java:1480)
              at java.awt.Container.validateTree(Container.java:1480)
              at java.awt.Container.validate(Container.java:1448)
              - locked <0x26cecde8> (a java.awt.Component$AWTTreeLock)
              at java.awt.Window.pack(Window.java:495)
              at javax.swing.JFileChooser.createDialog(JFileChooser.java:772)
              at javax.swing.JFileChooser.showDialog(JFileChooser.java:708)
              at com.sun.tools.extractor.Installer.doit(Installer.java:210)
              at com.sun.tools.extractor.Installer.main(Installer.java:52)

      Found 1 deadlock.

            ohair Kelly Ohair (Inactive)
            ksoshals Kirill Soshalskiy (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: