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

SwingApplet hangs on quit

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 1.4.0
    • 1.4.0
    • client-libs
    • None
    • beta2
    • sparc
    • solaris_2.6

      SwingApplet demo hangs on Solaris with Merlin beta_refresh-b66.
      Steps to reproduce:
      1. Run SwingApplet.html
      2. Select Quit from applet's menu
      3. Applet will hang

      Below is the stack trace.
      It can be seen that AWT-EventQueue-1 took InputMethodContext lock and is trying to get AWTTreeLock while applet-SwingApplet took AWTTreeLock and is trying to get InputMethodContextLock.

      It seems inappropriate for InputMethodContext to create AWT window while keeping InputMethodContext because AWT doesn't require it. In opposite, both AWTTreeLock grabs look reasonable. From quick look into the IM code it looks like they took lock for the whole method while it is required only to protect if statement (InputMethodContext.getCompositionAreaHandler).
      File the bug against IM for further investigation.


      "AWT-EventQueue-1" prio=4 tid=0x17dec0 nid=0x15 waiting for monitor entry [e4b00000..e4b01a38]
              at java.awt.Component.reshape(Component.java:1639)
              - waiting to lock <e5e14158> (a java.awt.Component$AWTTreeLock)
              at java.awt.Component.setBounds(Component.java:1630)
              at java.awt.Component.move(Component.java:1507)
              at java.awt.Component.setLocation(Component.java:1499)
              at java.awt.Window.init(Window.java:227)
              at java.awt.Window.<init>(Window.java:253)
              at java.awt.Frame.<init>(Frame.java:401)
              at sun.awt.im.SimpleInputMethodWindow.<init>(SimpleInputMethodWindow.java:32)
              at sun.awt.SunToolkit.createInputMethodWindow(SunToolkit.java:504)
              at sun.awt.im.InputMethodContext.createInputMethodWindow(InputMethodContext.java:300)
              at sun.awt.im.CompositionArea.<init>(CompositionArea.java:57)
              at sun.awt.im.CompositionAreaHandler.<init>(CompositionAreaHandler.java:53)
              - locked <e9fc0128> (a java.lang.Class)
              at sun.awt.im.InputMethodContext.getCompositionAreaHandler(InputMethodContext.java:193)
              - locked <e5cd2300> (a sun.awt.im.InputMethodContext)
              at sun.awt.im.InputMethodContext.dispatchEvent(InputMethodContext.java:176)
              at java.awt.Component.dispatchEventImpl(Component.java:3442)
              at java.awt.Container.dispatchEventImpl(Container.java:1440)
              at java.awt.Component.dispatchEvent(Component.java:3353)
              at java.awt.EventQueue.dispatchEvent(EventQueue.java:439)
              at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:150)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
              at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:131)
              at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)



      "thread applet-SwingApplet" prio=4 tid=0x160650 nid=0xf waiting for monitor entry [e5001000..e5001a38]
              at sun.awt.im.InputContext.removeNotify(InputContext.java:546)
              - waiting to lock <e5cd2300> (a sun.awt.im.InputMethodContext)
              at java.awt.Component.removeNotify(Component.java:5385)
              - locked <e5e14158> (a java.awt.Component$AWTTreeLock)
              at java.awt.Container.removeNotify(Container.java:1886)
              - locked <e5e14158> (a java.awt.Component$AWTTreeLock)
              at javax.swing.JComponent.removeNotify(JComponent.java:4224)
              at javax.swing.JButton.removeNotify(JButton.java:211)
              at java.awt.Container.remove(Container.java:534)
              - locked <e5e14158> (a java.awt.Component$AWTTreeLock)
              at java.awt.Container.remove(Container.java:587)
              - locked <e5e14158> (a java.awt.Component$AWTTreeLock)
              at SwingApplet.stop(SwingApplet.java:66)
              at sun.applet.AppletPanel.run(AppletPanel.java:377)
              at java.lang.Thread.run(Thread.java:579)

            naoto Naoto Sato
            domsunw Dom Dom (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: