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

SwingSet2 as an applet deadlocks on startup on Solaris

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 5.0
    • Fix Version/s: 5.0
    • Component/s: tools
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      tiger
    • CPU:
      sparc
    • OS:
      solaris_9

      Description

      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


        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ehawkessunw Eric Hawkes (Inactive)
                Reporter:
                prr Philip Race
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: