-
Bug
-
Resolution: Fixed
-
P4
-
5.0
-
None
-
tiger
-
sparc
-
solaris_9
I am running SwingSet2 in appletviewer
I get a reproducible deadlock on the 1.5 promoted build (04) on Solaris 9
and nothing appear in the applet windows. Stack trace as follows:-
% /import/java/jdk1.5/solaris-sparc/bin/appletviewer SwingSet2.h^tml
^\Full thread dump Java HotSpot(TM) Client VM (1.5.0-beta-b04 mixed mode):
"Thread-3" prio=4 tid=0x0039f848 nid=0x17 waiting for monitor entry [f02fe000..f02ffc30]
at java.awt.Container.invalidateTree(Container.java:1117)
- waiting to lock <0xf1fcb230> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.setFont(Container.java:1148)
at javax.swing.JComponent.setFont(JComponent.java:2319)
at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:89)
at javax.swing.plaf.basic.BasicPanelUI.installDefaults(BasicPanelUI.java:48)
at javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:39)
at javax.swing.JComponent.setUI(JComponent.java:449)
at javax.swing.JPanel.setUI(JPanel.java:131)
at javax.swing.JPanel.updateUI(JPanel.java:104)
at javax.swing.JPanel.<init>(JPanel.java:64)
at javax.swing.JPanel.<init>(JPanel.java:87)
at javax.swing.JPanel.<init>(JPanel.java:95)
at javax.swing.JRootPane.createGlassPane(JRootPane.java:480)
at javax.swing.JRootPane.<init>(JRootPane.java:311)
at javax.swing.JApplet.createRootPane(JApplet.java:135)
at javax.swing.JApplet.<init>(JApplet.java:118)
at DemoModule.<init>(DemoModule.java:106)
at ButtonDemo.<init>(ButtonDemo.java:107)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at SwingSet2.loadDemo(SwingSet2.java:759)
at SwingSet2.loadDemos(SwingSet2.java:92)
at SwingSet2$DemoLoadThread.run(SwingSet2.java:1296)
"AWT-EventQueue-1" prio=4 tid=0x000dd6b8 nid=0x13 waiting for monitor entry [f05fe000..f05ffc30]
at java.awt.Component.invalidate(Component.java:2117)
- waiting to lock <0xf1fcb230> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.invalidate(Container.java:1038)
at javax.swing.JComponent.revalidate(JComponent.java:4409)
at javax.swing.plaf.basic.BasicTextUI$RootView.preferenceChanged(BasicTextUI.java:1293)
at javax.swing.text.View.preferenceChanged(View.java:302)
at javax.swing.text.PlainView.updateDamage(PlainView.java:536)
at javax.swing.text.PlainView.insertUpdate(PlainView.java:421)
at javax.swing.text.FieldView.insertUpdate(FieldView.java:274)
at javax.swing.plaf.basic.BasicTextUI$RootView.insertUpdate(BasicTextUI.java:1489)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.insertUpdate(BasicTextUI.java:1729)
at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:184)
at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:749)
at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:706)
at javax.swing.text.PlainDocument.insertString(PlainDocument.java:114)
at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:668)
at javax.swing.text.JTextComponent.setText(JTextComponent.java:1411)
at SwingSet2$5.run(SwingSet2.java:876)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:208)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:143) at java.awt.EventDispatchThread.run(EventDispatchThread.java:104)
"TimerQueue" daemon prio=4 tid=0x000d7368 nid=0x12 in Object.wait() [f06ff000..f06ffc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf209a2b8> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(TimerQueue.java:231)
- locked <0xf209a2b8> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:534)
"DestroyJavaVM" prio=5 tid=0x0002ac40 nid=0x1 waiting on condition [0..ffbfe528]
"AWT-EventQueue-0" prio=6 tid=0x000ebcc8 nid=0x10 in Object.wait() [f0a7f000..f0a7fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf209a360> (a java.awt.EventQueue)
at java.lang.Object.wait(Object.java:429)
at java.awt.EventQueue.getNextEvent(EventQueue.java:339)
- locked <0xf209a360> (a java.awt.EventQueue)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:143) at java.awt.EventDispatchThread.run(EventDispatchThread.java:104)
"Java2D Disposer" daemon prio=10 tid=0x002be718 nid=0xf in Object.wait() [f0b7f000..f0b7fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf209a3f0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0xf209a3f0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at sun.java2d.Disposer.run(Disposer.java:97)
at java.lang.Thread.run(Thread.java:534)
"AWT-Shutdown" prio=6 tid=0x002b9508 nid=0xe in Object.wait() [f0e7f000..f0e7fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf1fca420> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0xf1fca420> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:534)
"thread applet-SwingSet2Applet" prio=4 tid=0x0024a2f8 nid=0xc in Object.wait() [f0c7f000..f0c7fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf20c2ff0> (a javax.swing.text.PlainDocument)
at java.lang.Object.wait(Object.java:429)
at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1385)
- locked <0xf20c2ff0> (a javax.swing.text.PlainDocument)
at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:797)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1275)
at javax.swing.JTextField.getPreferredSize(JTextField.java:406)
at java.awt.BorderLayout.layoutContainer(BorderLayout.java:674)
- locked <0xf1fcb230> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.layout(Container.java:1020)
at java.awt.Container.doLayout(Container.java:1010)
at java.awt.Container.validateTree(Container.java:1092)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validate(Container.java:1067)
- locked <0xf1fcb230> (a java.awt.Component$AWTTreeLock)
at sun.applet.AppletPanel.run(AppletPanel.java:365)
at java.lang.Thread.run(Thread.java:534)
"AWT-Motif" daemon prio=6 tid=0x00196400 nid=0xa runnable [f0d7f000..f0d7fc30]
at sun.awt.motif.MToolkit.run(Native Method)
at java.lang.Thread.run(Thread.java:534)
"Signal Dispatcher" daemon prio=10 tid=0x000c03c8 nid=0x6 waiting on condition [0..0]
"Finalizer" daemon prio=8 tid=0x000bced0 nid=0x4 in Object.wait() [fc67f000..fc67fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf1fca520> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0xf1fca520> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x000bb5a8 nid=0x3 in Object.wait() [fc77f000..fc77fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf1fca418> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
- locked <0xf1fca418> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=5 tid=0x000ba778 nid=0x2 runnable
"VM Periodic Task Thread" prio=10 tid=0x000c31b8 nid=0x8 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x000bfa60 nid=0x5 runnable
I get a reproducible deadlock on the 1.5 promoted build (04) on Solaris 9
and nothing appear in the applet windows. Stack trace as follows:-
% /import/java/jdk1.5/solaris-sparc/bin/appletviewer SwingSet2.h^tml
^\Full thread dump Java HotSpot(TM) Client VM (1.5.0-beta-b04 mixed mode):
"Thread-3" prio=4 tid=0x0039f848 nid=0x17 waiting for monitor entry [f02fe000..f02ffc30]
at java.awt.Container.invalidateTree(Container.java:1117)
- waiting to lock <0xf1fcb230> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.setFont(Container.java:1148)
at javax.swing.JComponent.setFont(JComponent.java:2319)
at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:89)
at javax.swing.plaf.basic.BasicPanelUI.installDefaults(BasicPanelUI.java:48)
at javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:39)
at javax.swing.JComponent.setUI(JComponent.java:449)
at javax.swing.JPanel.setUI(JPanel.java:131)
at javax.swing.JPanel.updateUI(JPanel.java:104)
at javax.swing.JPanel.<init>(JPanel.java:64)
at javax.swing.JPanel.<init>(JPanel.java:87)
at javax.swing.JPanel.<init>(JPanel.java:95)
at javax.swing.JRootPane.createGlassPane(JRootPane.java:480)
at javax.swing.JRootPane.<init>(JRootPane.java:311)
at javax.swing.JApplet.createRootPane(JApplet.java:135)
at javax.swing.JApplet.<init>(JApplet.java:118)
at DemoModule.<init>(DemoModule.java:106)
at ButtonDemo.<init>(ButtonDemo.java:107)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at SwingSet2.loadDemo(SwingSet2.java:759)
at SwingSet2.loadDemos(SwingSet2.java:92)
at SwingSet2$DemoLoadThread.run(SwingSet2.java:1296)
"AWT-EventQueue-1" prio=4 tid=0x000dd6b8 nid=0x13 waiting for monitor entry [f05fe000..f05ffc30]
at java.awt.Component.invalidate(Component.java:2117)
- waiting to lock <0xf1fcb230> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.invalidate(Container.java:1038)
at javax.swing.JComponent.revalidate(JComponent.java:4409)
at javax.swing.plaf.basic.BasicTextUI$RootView.preferenceChanged(BasicTextUI.java:1293)
at javax.swing.text.View.preferenceChanged(View.java:302)
at javax.swing.text.PlainView.updateDamage(PlainView.java:536)
at javax.swing.text.PlainView.insertUpdate(PlainView.java:421)
at javax.swing.text.FieldView.insertUpdate(FieldView.java:274)
at javax.swing.plaf.basic.BasicTextUI$RootView.insertUpdate(BasicTextUI.java:1489)
at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.insertUpdate(BasicTextUI.java:1729)
at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:184)
at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:749)
at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:706)
at javax.swing.text.PlainDocument.insertString(PlainDocument.java:114)
at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:668)
at javax.swing.text.JTextComponent.setText(JTextComponent.java:1411)
at SwingSet2$5.run(SwingSet2.java:876)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:208)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:143) at java.awt.EventDispatchThread.run(EventDispatchThread.java:104)
"TimerQueue" daemon prio=4 tid=0x000d7368 nid=0x12 in Object.wait() [f06ff000..f06ffc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf209a2b8> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(TimerQueue.java:231)
- locked <0xf209a2b8> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:534)
"DestroyJavaVM" prio=5 tid=0x0002ac40 nid=0x1 waiting on condition [0..ffbfe528]
"AWT-EventQueue-0" prio=6 tid=0x000ebcc8 nid=0x10 in Object.wait() [f0a7f000..f0a7fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf209a360> (a java.awt.EventQueue)
at java.lang.Object.wait(Object.java:429)
at java.awt.EventQueue.getNextEvent(EventQueue.java:339)
- locked <0xf209a360> (a java.awt.EventQueue)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:143) at java.awt.EventDispatchThread.run(EventDispatchThread.java:104)
"Java2D Disposer" daemon prio=10 tid=0x002be718 nid=0xf in Object.wait() [f0b7f000..f0b7fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf209a3f0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0xf209a3f0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at sun.java2d.Disposer.run(Disposer.java:97)
at java.lang.Thread.run(Thread.java:534)
"AWT-Shutdown" prio=6 tid=0x002b9508 nid=0xe in Object.wait() [f0e7f000..f0e7fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf1fca420> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0xf1fca420> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:534)
"thread applet-SwingSet2Applet" prio=4 tid=0x0024a2f8 nid=0xc in Object.wait() [f0c7f000..f0c7fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf20c2ff0> (a javax.swing.text.PlainDocument)
at java.lang.Object.wait(Object.java:429)
at javax.swing.text.AbstractDocument.readLock(AbstractDocument.java:1385)
- locked <0xf20c2ff0> (a javax.swing.text.PlainDocument)
at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:797)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1275)
at javax.swing.JTextField.getPreferredSize(JTextField.java:406)
at java.awt.BorderLayout.layoutContainer(BorderLayout.java:674)
- locked <0xf1fcb230> (a java.awt.Component$AWTTreeLock)
at java.awt.Container.layout(Container.java:1020)
at java.awt.Container.doLayout(Container.java:1010)
at java.awt.Container.validateTree(Container.java:1092)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validateTree(Container.java:1099)
at java.awt.Container.validate(Container.java:1067)
- locked <0xf1fcb230> (a java.awt.Component$AWTTreeLock)
at sun.applet.AppletPanel.run(AppletPanel.java:365)
at java.lang.Thread.run(Thread.java:534)
"AWT-Motif" daemon prio=6 tid=0x00196400 nid=0xa runnable [f0d7f000..f0d7fc30]
at sun.awt.motif.MToolkit.run(Native Method)
at java.lang.Thread.run(Thread.java:534)
"Signal Dispatcher" daemon prio=10 tid=0x000c03c8 nid=0x6 waiting on condition [0..0]
"Finalizer" daemon prio=8 tid=0x000bced0 nid=0x4 in Object.wait() [fc67f000..fc67fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf1fca520> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0xf1fca520> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x000bb5a8 nid=0x3 in Object.wait() [fc77f000..fc77fc30]
at java.lang.Object.wait(Native Method)
- waiting on <0xf1fca418> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
- locked <0xf1fca418> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=5 tid=0x000ba778 nid=0x2 runnable
"VM Periodic Task Thread" prio=10 tid=0x000c31b8 nid=0x8 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x000bfa60 nid=0x5 runnable
- relates to
-
JDK-6195631 Applet deadlocks at startup - AppletPanel violates Swing single-thread rule
-
- Closed
-