-
Bug
-
Resolution: Duplicate
-
P2
-
None
-
5.0u10
-
x86
-
windows_xp
FULL PRODUCT VERSION :
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03)
Java HotSpot(TM) Client VM (build 1.5.0_10-b03, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
When one uses JFileChooser from an applet, leaves the applet page, returns to the applet page, and attempts to use JFileChooser again from the applet, the JPI deadlocks in JFileChooser in Windows Look and Feel code. [Note you must be using the Windows Look and Feel for the issue to occur.]
This issue can be reproduced in both Internet Explorer and Firefox browsers with Java 5. Unfortunately, it is not reproducible on all Windows systems -- to the best of my knowledge all systems where the issue has been reproduced had 2 or more CPUs. I believe this issue is reproducible always or almost always on machines where it can be reproduced at all.
We have not managed to reproduce this issue in Java 6 -- and I suspect from examining the threading changes there that this issue is not reproducible there. Unfortunately, we cannot require Java 6 as of yet and must have a resolution for this issue in Java 5. [I would, however, appreciate confirmation that the issue is not possible in Java 6.]
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Use JFileChooser from an applet, leaves the applet page, returns to the applet page, and attempts to use JFileChooser again from the applet. [Note you must be using the Windows Look and Feel for the issue to occur.]
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
JFileChooser should come up and the deadlock should certainly not occur.
ACTUAL -
A deadlock occurs. The following full thread dump clearly shows this:
Full thread dump Java HotSpot(TM) Client VM (1.5.0_10-b03 mixed mode):
"Image Fetcher 0" daemon prio=4 tid=0x02b56340 nid=0x1fec in
Object.wait() [0x07d0f000..0x07d0fa68]
at java.lang.Object.wait(Native Method)
- waiting on <0x16920130> (a java.util.Vector)
at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
- locked <0x16920130> (a java.util.Vector)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)
"AWT-EventQueue-3" prio=4 tid=0x075ba088 nid=0xe80 waiting for monitor
entry [0x06dce000..0x06dcfae8]
at
sun.awt.windows.WDesktopProperties.addPropertyChangeListener(Unknown
Source)
- waiting to lock <0x165b2810> (a
sun.awt.windows.WDesktopProperties)
at sun.awt.windows.WToolkit.addPropertyChangeListener(Unknown
Source)
- locked <0x165433a8> (a sun.awt.windows.WToolkit)
at
com.sun.java.swing.plaf.windows.DesktopProperty.getValueFromDesktop(Unkn
own Source)
at
com.sun.java.swing.plaf.windows.DesktopProperty.createValue(Unknown
Source)
at javax.swing.UIDefaults.getFromHashtable(Unknown Source)
at javax.swing.UIDefaults.get(Unknown Source)
at javax.swing.MultiUIDefaults.get(Unknown Source)
at javax.swing.UIDefaults.getColor(Unknown Source)
at javax.swing.UIManager.getColor(Unknown Source)
at javax.swing.LookAndFeel.installColors(Unknown Source)
at javax.swing.LookAndFeel.installColorsAndFont(Unknown Source)
at
javax.swing.plaf.basic.BasicPopupMenuUI.installDefaults(Unknown Source)
at javax.swing.plaf.basic.BasicPopupMenuUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JPopupMenu.setUI(Unknown Source)
at javax.swing.JPopupMenu.updateUI(Unknown Source)
at javax.swing.JPopupMenu.<init>(Unknown Source)
at javax.swing.JPopupMenu.<init>(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup.<init>(Unknown Source)
at javax.swing.plaf.basic.BasicComboBoxUI.createPopup(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.createPopup(Unknown
Source)
at javax.swing.plaf.basic.BasicComboBoxUI.installUI(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JComboBox.setUI(Unknown Source)
at javax.swing.JComboBox.updateUI(Unknown Source)
at javax.swing.JComboBox.init(Unknown Source)
at javax.swing.JComboBox.<init>(Unknown Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI$2.<init>(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installComponents(U
nknown Source)
at javax.swing.plaf.basic.BasicFileChooserUI.installUI(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JFileChooser.updateUI(Unknown Source)
at javax.swing.JFileChooser.setup(Unknown Source)
at wt.security.WTJFileChooser.setup0(WTJFileChooser.java:138)
at wt.security.WTJFileChooser$1.run(WTJFileChooser.java:130)
at java.security.AccessController.doPrivileged(Native Method)
at wt.security.WTJFileChooser.setup(WTJFileChooser.java:127)
at javax.swing.JFileChooser.<init>(Unknown Source)
at wt.security.WTJFileChooser.<init>(WTJFileChooser.java:48)
at wt.security.WTJFileChooser.<init>(WTJFileChooser.java:32)
at applet.test.TestApplet$1.actionPerformed(TestApplet.java:32)
at javax.swing.AbstractButton.fireActionPerformed(Unknown
Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown
Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown
Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
"TimerQueue" daemon prio=4 tid=0x07636848 nid=0x1f1c in Object.wait()
[0x07a0f000..0x07a0fb68]
at java.lang.Object.wait(Native Method)
- waiting on <0x168a00b0> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(Unknown Source)
- locked <0x168a00b0> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)
"thread applet-applet/test/TestApplet.class" prio=4 tid=0x06a87b10
nid=0x1d58 in Object.wait() [0x07c0f000..0x07c0fc68]
at java.lang.Object.wait(Native Method)
- waiting on <0x168a00d0> (a sun.plugin.AppletViewer)
at java.lang.Object.wait(Unknown Source)
at sun.applet.AppletPanel.getNextEvent(Unknown Source)
- locked <0x168a00d0> (a sun.plugin.AppletViewer)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"AWT-EventQueue-0" prio=6 tid=0x076a6938 nid=0xd2c waiting for monitor
entry [0x0750f000..0x0750fa68]
at sun.awt.windows.WToolkit.clearDesktopProperty(Unknown Source)
- waiting to lock <0x165433a8> (a sun.awt.windows.WToolkit)
at
sun.awt.windows.WDesktopProperties.diffPropertyChanges(Unknown Source)
- locked <0x165b2810> (a sun.awt.windows.WDesktopProperties)
at sun.awt.windows.WDesktopProperties.access$100(Unknown Source)
at
sun.awt.windows.WDesktopProperties$DiffPropertyChanges.run(Unknown
Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
"AWT-Shutdown" prio=6 tid=0x06a50148 nid=0x1274 in Object.wait()
[0x0740f000..0x0740fae8]
at java.lang.Object.wait(Native Method)
- waiting on <0x165433e8> (a java.lang.Object)
at java.lang.Object.wait(Unknown Source)
at sun.awt.AWTAutoShutdown.run(Unknown Source)
- locked <0x165433e8> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)
"Thread-8" prio=6 tid=0x06a6f038 nid=0x384 runnable
[0x00000000..0x0013e708]
"traceMsgQueueThread" daemon prio=6 tid=0x02c2bf68 nid=0x1c48 in
Object.wait() [0x0720f000..0x0720fb68]
at java.lang.Object.wait(Native Method)
- waiting on <0x165840f0> (a java.util.ArrayList)
at java.lang.Object.wait(Unknown Source)
at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown
Source)
- locked <0x165840f0> (a java.util.ArrayList)
at java.lang.Thread.run(Unknown Source)
"AWT-Windows" daemon prio=6 tid=0x06a507b8 nid=0x121c runnable
[0x06ecf000..0x06ecfbe8]
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Java2D Disposer" daemon prio=10 tid=0x06a499d0 nid=0x1974 in
Object.wait() [0x06ccf000..0x06ccfce8]
at java.lang.Object.wait(Native Method)
- waiting on <0x16543410> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x16543410> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Low Memory Detector" daemon prio=6 tid=0x02c36b60 nid=0x7d0 runnable
[0x00000000..0x00000000]
"CompilerThread0" daemon prio=10 tid=0x02c35470 nid=0x1a84 waiting on
condition [0x00000000..0x067cf748]
"Signal Dispatcher" daemon prio=10 tid=0x02c34668 nid=0x9ec waiting on
condition [0x00000000..0x00000000]
"JDWP Event Helper Thread" daemon prio=6 tid=0x02c332b0 nid=0x974
runnable [0x00000000..0x00000000]
"JDWP Transport Listener: dt_socket" daemon prio=6 tid=0x02b53008
nid=0xccc runnable [0x00000000..0x00000000]
"Finalizer" daemon prio=8 tid=0x02c23020 nid=0x250 in Object.wait()
[0x063cf000..0x063cfc68]
at java.lang.Object.wait(Native Method)
- waiting on <0x165434f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x165434f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
"Reference Handler" daemon prio=10 tid=0x02c21bb0 nid=0xfc8 in
Object.wait() [0x062cf000..0x062cfce8]
at java.lang.Object.wait(Native Method)
- waiting on <0x165433e0> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x165433e0> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x0035ecb0 nid=0x1770 runnable
"VM Periodic Task Thread" prio=10 tid=0x0035e820 nid=0x1488 waiting on
condition
Found one Java-level deadlock:
=============================
"AWT-EventQueue-3":
waiting to lock monitor 0x02c228d4 (object 0x165b2810, a
sun.awt.windows.WDesktopProperties),
which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
waiting to lock monitor 0x02c228f4 (object 0x165433a8, a
sun.awt.windows.WToolkit),
which is held by "AWT-EventQueue-3"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-3":
at
sun.awt.windows.WDesktopProperties.addPropertyChangeListener(Unknown
Source)
- waiting to lock <0x165b2810> (a
sun.awt.windows.WDesktopProperties)
at sun.awt.windows.WToolkit.addPropertyChangeListener(Unknown
Source)
- locked <0x165433a8> (a sun.awt.windows.WToolkit)
at
com.sun.java.swing.plaf.windows.DesktopProperty.getValueFromDesktop(Unkn
own Source)
at
com.sun.java.swing.plaf.windows.DesktopProperty.createValue(Unknown
Source)
at javax.swing.UIDefaults.getFromHashtable(Unknown Source)
at javax.swing.UIDefaults.get(Unknown Source)
at javax.swing.MultiUIDefaults.get(Unknown Source)
at javax.swing.UIDefaults.getColor(Unknown Source)
at javax.swing.UIManager.getColor(Unknown Source)
at javax.swing.LookAndFeel.installColors(Unknown Source)
at javax.swing.LookAndFeel.installColorsAndFont(Unknown Source)
at
javax.swing.plaf.basic.BasicPopupMenuUI.installDefaults(Unknown Source)
at javax.swing.plaf.basic.BasicPopupMenuUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JPopupMenu.setUI(Unknown Source)
at javax.swing.JPopupMenu.updateUI(Unknown Source)
at javax.swing.JPopupMenu.<init>(Unknown Source)
at javax.swing.JPopupMenu.<init>(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup.<init>(Unknown Source)
at javax.swing.plaf.basic.BasicComboBoxUI.createPopup(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.createPopup(Unknown
Source)
at javax.swing.plaf.basic.BasicComboBoxUI.installUI(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JComboBox.setUI(Unknown Source)
at javax.swing.JComboBox.updateUI(Unknown Source)
at javax.swing.JComboBox.init(Unknown Source)
at javax.swing.JComboBox.<init>(Unknown Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI$2.<init>(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installComponents(U
nknown Source)
at javax.swing.plaf.basic.BasicFileChooserUI.installUI(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JFileChooser.updateUI(Unknown Source)
at javax.swing.JFileChooser.setup(Unknown Source)
at wt.security.WTJFileChooser.setup0(WTJFileChooser.java:138)
at wt.security.WTJFileChooser$1.run(WTJFileChooser.java:130)
at java.security.AccessController.doPrivileged(Native Method)
at wt.security.WTJFileChooser.setup(WTJFileChooser.java:127)
at javax.swing.JFileChooser.<init>(Unknown Source)
at wt.security.WTJFileChooser.<init>(WTJFileChooser.java:48)
at wt.security.WTJFileChooser.<init>(WTJFileChooser.java:32)
at applet.test.TestApplet$1.actionPerformed(TestApplet.java:32)
at javax.swing.AbstractButton.fireActionPerformed(Unknown
Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(U
The testcase is in the attached file ptc.tar.
Just expand it on a webserver or on your local disk and load the test.html into the browser. The classes were generated with the -source 1.5 and -target 1.5 javac options.
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03)
Java HotSpot(TM) Client VM (build 1.5.0_10-b03, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
When one uses JFileChooser from an applet, leaves the applet page, returns to the applet page, and attempts to use JFileChooser again from the applet, the JPI deadlocks in JFileChooser in Windows Look and Feel code. [Note you must be using the Windows Look and Feel for the issue to occur.]
This issue can be reproduced in both Internet Explorer and Firefox browsers with Java 5. Unfortunately, it is not reproducible on all Windows systems -- to the best of my knowledge all systems where the issue has been reproduced had 2 or more CPUs. I believe this issue is reproducible always or almost always on machines where it can be reproduced at all.
We have not managed to reproduce this issue in Java 6 -- and I suspect from examining the threading changes there that this issue is not reproducible there. Unfortunately, we cannot require Java 6 as of yet and must have a resolution for this issue in Java 5. [I would, however, appreciate confirmation that the issue is not possible in Java 6.]
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Use JFileChooser from an applet, leaves the applet page, returns to the applet page, and attempts to use JFileChooser again from the applet. [Note you must be using the Windows Look and Feel for the issue to occur.]
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
JFileChooser should come up and the deadlock should certainly not occur.
ACTUAL -
A deadlock occurs. The following full thread dump clearly shows this:
Full thread dump Java HotSpot(TM) Client VM (1.5.0_10-b03 mixed mode):
"Image Fetcher 0" daemon prio=4 tid=0x02b56340 nid=0x1fec in
Object.wait() [0x07d0f000..0x07d0fa68]
at java.lang.Object.wait(Native Method)
- waiting on <0x16920130> (a java.util.Vector)
at sun.awt.image.ImageFetcher.nextImage(Unknown Source)
- locked <0x16920130> (a java.util.Vector)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)
"AWT-EventQueue-3" prio=4 tid=0x075ba088 nid=0xe80 waiting for monitor
entry [0x06dce000..0x06dcfae8]
at
sun.awt.windows.WDesktopProperties.addPropertyChangeListener(Unknown
Source)
- waiting to lock <0x165b2810> (a
sun.awt.windows.WDesktopProperties)
at sun.awt.windows.WToolkit.addPropertyChangeListener(Unknown
Source)
- locked <0x165433a8> (a sun.awt.windows.WToolkit)
at
com.sun.java.swing.plaf.windows.DesktopProperty.getValueFromDesktop(Unkn
own Source)
at
com.sun.java.swing.plaf.windows.DesktopProperty.createValue(Unknown
Source)
at javax.swing.UIDefaults.getFromHashtable(Unknown Source)
at javax.swing.UIDefaults.get(Unknown Source)
at javax.swing.MultiUIDefaults.get(Unknown Source)
at javax.swing.UIDefaults.getColor(Unknown Source)
at javax.swing.UIManager.getColor(Unknown Source)
at javax.swing.LookAndFeel.installColors(Unknown Source)
at javax.swing.LookAndFeel.installColorsAndFont(Unknown Source)
at
javax.swing.plaf.basic.BasicPopupMenuUI.installDefaults(Unknown Source)
at javax.swing.plaf.basic.BasicPopupMenuUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JPopupMenu.setUI(Unknown Source)
at javax.swing.JPopupMenu.updateUI(Unknown Source)
at javax.swing.JPopupMenu.<init>(Unknown Source)
at javax.swing.JPopupMenu.<init>(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup.<init>(Unknown Source)
at javax.swing.plaf.basic.BasicComboBoxUI.createPopup(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.createPopup(Unknown
Source)
at javax.swing.plaf.basic.BasicComboBoxUI.installUI(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JComboBox.setUI(Unknown Source)
at javax.swing.JComboBox.updateUI(Unknown Source)
at javax.swing.JComboBox.init(Unknown Source)
at javax.swing.JComboBox.<init>(Unknown Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI$2.<init>(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installComponents(U
nknown Source)
at javax.swing.plaf.basic.BasicFileChooserUI.installUI(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JFileChooser.updateUI(Unknown Source)
at javax.swing.JFileChooser.setup(Unknown Source)
at wt.security.WTJFileChooser.setup0(WTJFileChooser.java:138)
at wt.security.WTJFileChooser$1.run(WTJFileChooser.java:130)
at java.security.AccessController.doPrivileged(Native Method)
at wt.security.WTJFileChooser.setup(WTJFileChooser.java:127)
at javax.swing.JFileChooser.<init>(Unknown Source)
at wt.security.WTJFileChooser.<init>(WTJFileChooser.java:48)
at wt.security.WTJFileChooser.<init>(WTJFileChooser.java:32)
at applet.test.TestApplet$1.actionPerformed(TestApplet.java:32)
at javax.swing.AbstractButton.fireActionPerformed(Unknown
Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown
Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown
Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
"TimerQueue" daemon prio=4 tid=0x07636848 nid=0x1f1c in Object.wait()
[0x07a0f000..0x07a0fb68]
at java.lang.Object.wait(Native Method)
- waiting on <0x168a00b0> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(Unknown Source)
- locked <0x168a00b0> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Unknown Source)
"thread applet-applet/test/TestApplet.class" prio=4 tid=0x06a87b10
nid=0x1d58 in Object.wait() [0x07c0f000..0x07c0fc68]
at java.lang.Object.wait(Native Method)
- waiting on <0x168a00d0> (a sun.plugin.AppletViewer)
at java.lang.Object.wait(Unknown Source)
at sun.applet.AppletPanel.getNextEvent(Unknown Source)
- locked <0x168a00d0> (a sun.plugin.AppletViewer)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"AWT-EventQueue-0" prio=6 tid=0x076a6938 nid=0xd2c waiting for monitor
entry [0x0750f000..0x0750fa68]
at sun.awt.windows.WToolkit.clearDesktopProperty(Unknown Source)
- waiting to lock <0x165433a8> (a sun.awt.windows.WToolkit)
at
sun.awt.windows.WDesktopProperties.diffPropertyChanges(Unknown Source)
- locked <0x165b2810> (a sun.awt.windows.WDesktopProperties)
at sun.awt.windows.WDesktopProperties.access$100(Unknown Source)
at
sun.awt.windows.WDesktopProperties$DiffPropertyChanges.run(Unknown
Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
"AWT-Shutdown" prio=6 tid=0x06a50148 nid=0x1274 in Object.wait()
[0x0740f000..0x0740fae8]
at java.lang.Object.wait(Native Method)
- waiting on <0x165433e8> (a java.lang.Object)
at java.lang.Object.wait(Unknown Source)
at sun.awt.AWTAutoShutdown.run(Unknown Source)
- locked <0x165433e8> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)
"Thread-8" prio=6 tid=0x06a6f038 nid=0x384 runnable
[0x00000000..0x0013e708]
"traceMsgQueueThread" daemon prio=6 tid=0x02c2bf68 nid=0x1c48 in
Object.wait() [0x0720f000..0x0720fb68]
at java.lang.Object.wait(Native Method)
- waiting on <0x165840f0> (a java.util.ArrayList)
at java.lang.Object.wait(Unknown Source)
at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown
Source)
- locked <0x165840f0> (a java.util.ArrayList)
at java.lang.Thread.run(Unknown Source)
"AWT-Windows" daemon prio=6 tid=0x06a507b8 nid=0x121c runnable
[0x06ecf000..0x06ecfbe8]
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Java2D Disposer" daemon prio=10 tid=0x06a499d0 nid=0x1974 in
Object.wait() [0x06ccf000..0x06ccfce8]
at java.lang.Object.wait(Native Method)
- waiting on <0x16543410> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x16543410> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at sun.java2d.Disposer.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Low Memory Detector" daemon prio=6 tid=0x02c36b60 nid=0x7d0 runnable
[0x00000000..0x00000000]
"CompilerThread0" daemon prio=10 tid=0x02c35470 nid=0x1a84 waiting on
condition [0x00000000..0x067cf748]
"Signal Dispatcher" daemon prio=10 tid=0x02c34668 nid=0x9ec waiting on
condition [0x00000000..0x00000000]
"JDWP Event Helper Thread" daemon prio=6 tid=0x02c332b0 nid=0x974
runnable [0x00000000..0x00000000]
"JDWP Transport Listener: dt_socket" daemon prio=6 tid=0x02b53008
nid=0xccc runnable [0x00000000..0x00000000]
"Finalizer" daemon prio=8 tid=0x02c23020 nid=0x250 in Object.wait()
[0x063cf000..0x063cfc68]
at java.lang.Object.wait(Native Method)
- waiting on <0x165434f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x165434f8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
"Reference Handler" daemon prio=10 tid=0x02c21bb0 nid=0xfc8 in
Object.wait() [0x062cf000..0x062cfce8]
at java.lang.Object.wait(Native Method)
- waiting on <0x165433e0> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x165433e0> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x0035ecb0 nid=0x1770 runnable
"VM Periodic Task Thread" prio=10 tid=0x0035e820 nid=0x1488 waiting on
condition
Found one Java-level deadlock:
=============================
"AWT-EventQueue-3":
waiting to lock monitor 0x02c228d4 (object 0x165b2810, a
sun.awt.windows.WDesktopProperties),
which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
waiting to lock monitor 0x02c228f4 (object 0x165433a8, a
sun.awt.windows.WToolkit),
which is held by "AWT-EventQueue-3"
Java stack information for the threads listed above:
===================================================
"AWT-EventQueue-3":
at
sun.awt.windows.WDesktopProperties.addPropertyChangeListener(Unknown
Source)
- waiting to lock <0x165b2810> (a
sun.awt.windows.WDesktopProperties)
at sun.awt.windows.WToolkit.addPropertyChangeListener(Unknown
Source)
- locked <0x165433a8> (a sun.awt.windows.WToolkit)
at
com.sun.java.swing.plaf.windows.DesktopProperty.getValueFromDesktop(Unkn
own Source)
at
com.sun.java.swing.plaf.windows.DesktopProperty.createValue(Unknown
Source)
at javax.swing.UIDefaults.getFromHashtable(Unknown Source)
at javax.swing.UIDefaults.get(Unknown Source)
at javax.swing.MultiUIDefaults.get(Unknown Source)
at javax.swing.UIDefaults.getColor(Unknown Source)
at javax.swing.UIManager.getColor(Unknown Source)
at javax.swing.LookAndFeel.installColors(Unknown Source)
at javax.swing.LookAndFeel.installColorsAndFont(Unknown Source)
at
javax.swing.plaf.basic.BasicPopupMenuUI.installDefaults(Unknown Source)
at javax.swing.plaf.basic.BasicPopupMenuUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JPopupMenu.setUI(Unknown Source)
at javax.swing.JPopupMenu.updateUI(Unknown Source)
at javax.swing.JPopupMenu.<init>(Unknown Source)
at javax.swing.JPopupMenu.<init>(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup.<init>(Unknown Source)
at javax.swing.plaf.basic.BasicComboBoxUI.createPopup(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.createPopup(Unknown
Source)
at javax.swing.plaf.basic.BasicComboBoxUI.installUI(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsComboBoxUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JComboBox.setUI(Unknown Source)
at javax.swing.JComboBox.updateUI(Unknown Source)
at javax.swing.JComboBox.init(Unknown Source)
at javax.swing.JComboBox.<init>(Unknown Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI$2.<init>(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installComponents(U
nknown Source)
at javax.swing.plaf.basic.BasicFileChooserUI.installUI(Unknown
Source)
at
com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installUI(Unknown
Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.JFileChooser.updateUI(Unknown Source)
at javax.swing.JFileChooser.setup(Unknown Source)
at wt.security.WTJFileChooser.setup0(WTJFileChooser.java:138)
at wt.security.WTJFileChooser$1.run(WTJFileChooser.java:130)
at java.security.AccessController.doPrivileged(Native Method)
at wt.security.WTJFileChooser.setup(WTJFileChooser.java:127)
at javax.swing.JFileChooser.<init>(Unknown Source)
at wt.security.WTJFileChooser.<init>(WTJFileChooser.java:48)
at wt.security.WTJFileChooser.<init>(WTJFileChooser.java:32)
at applet.test.TestApplet$1.actionPerformed(TestApplet.java:32)
at javax.swing.AbstractButton.fireActionPerformed(Unknown
Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(U
The testcase is in the attached file ptc.tar.
Just expand it on a webserver or on your local disk and load the test.html into the browser. The classes were generated with the -source 1.5 and -target 1.5 javac options.
- relates to
-
JDK-6657505 DEA: JFileChooser deadlocks IE under dual core
- Closed