-
Bug
-
Resolution: Fixed
-
P3
-
5.0
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.
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.
- relates to
-
JDK-6503689 There is shouldn't be default button for dest. directory dialog in java 7 src installer.
-
- Closed
-
-
JDK-6563239 the window of the installer is not updated (jrl-extractor?)
-
- Closed
-