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

Mac: SwingBrowser hangs when closing the tab

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: fx2.0.2
    • Fix Version/s: fx2.1
    • Component/s: javafx
    • Environment:

      Mac

      Description

      Build #144

      To reproduce:
      Run artifacts/apps/internal/SwingBrowser.jar
      Close the tab by clicking on the X mark.

      Here's the stack trace:

      $ jstack 87173
      2011-10-25 13:11:15
      Full thread dump Java HotSpot(TM) 64-Bit Server VM (16.3-b01-279 mixed mode):

      "Attach Listener" daemon prio=9 tid=101a47800 nid=0x12c097000 waiting on condition [00000000]
         java.lang.Thread.State: RUNNABLE

      "TimerQueue" daemon prio=5 tid=101afd800 nid=0x12c29b000 in Object.wait() [12c29a000]
         java.lang.Thread.State: TIMED_WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <1079a0220> (a javax.swing.TimerQueue)
      at javax.swing.TimerQueue.run(TimerQueue.java:232)
      - locked <1079a0220> (a javax.swing.TimerQueue)
      at java.lang.Thread.run(Thread.java:637)

      "Disposer" daemon prio=10 tid=1030bb000 nid=0x12b8e2000 in Object.wait() [12b8e1000]
         java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <107dde8b0> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
      - locked <107dde8b0> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
      at com.sun.webpane.platform.Disposer.run(Disposer.java:65)
      at java.lang.Thread.run(Thread.java:637)

      "Timer-0" daemon prio=6 tid=103202800 nid=0x12b677000 in Object.wait() [12b676000]
         java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <107dde9c0> (a java.util.TaskQueue)
      at java.lang.Object.wait(Object.java:485)
      at java.util.TimerThread.mainLoop(Timer.java:483)
      - locked <107dde9c0> (a java.util.TaskQueue)
      at java.util.TimerThread.run(Timer.java:462)

      "Glass Timer Thread" daemon prio=9 tid=101949800 nid=0x12b471000 runnable [00000000]
         java.lang.Thread.State: RUNNABLE

      "Disposer" daemon prio=10 tid=103102000 nid=0x12b2cf000 in Object.wait() [12b2ce000]
         java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <107ddec78> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
      - locked <107ddec78> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
      at com.sun.glass.utils.Disposer.run(Disposer.java:69)
      at java.lang.Thread.run(Thread.java:637)

      "QuantumRenderer-0" daemon prio=6 tid=101949000 nid=0x12a8b7000 waiting on condition [12a8b6000]
         java.lang.Thread.State: WAITING (parking)
      at sun.misc.Unsafe.park(Native Method)
      - parking to wait for <107ddee48> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
      at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
      at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
      at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:101)
      at java.lang.Thread.run(Thread.java:637)

      "DestroyJavaVM" prio=5 tid=103000800 nid=0x100501000 waiting on condition [00000000]
         java.lang.Thread.State: RUNNABLE

      "AWT-EventQueue-0" prio=6 tid=103110000 nid=0x12a7b4000 runnable [12a7b1000]
         java.lang.Thread.State: RUNNABLE
      at apple.awt.CComponent._requestFocus(Native Method)
      at apple.awt.CComponent.requestFocus(CComponent.java:56)
      at java.awt.Component.requestFocusHelper(Component.java:7497)
      at java.awt.Component.requestFocusHelper(Component.java:7458)
      at java.awt.Component.requestFocusInWindow(Component.java:7384)
      at javax.swing.JComponent.requestFocusInWindow(JComponent.java:1498)
      at swingbrowser.components.AddressBar.requestFocusInWindow(AddressBar.java:58)
      at swingbrowser.components.AddressBar$9.hierarchyChanged(AddressBar.java:123)
      at java.awt.Component.processHierarchyEvent(Component.java:6515)
      at java.awt.Component.processEvent(Component.java:6134)
      at java.awt.Container.processEvent(Container.java:2085)
      at java.awt.Component.dispatchEventImpl(Component.java:4714)
      at java.awt.Container.dispatchEventImpl(Container.java:2143)
      at java.awt.Component.dispatchEvent(Component.java:4544)
      at java.awt.Component.createHierarchyEvents(Component.java:5364)
      at java.awt.Container.createHierarchyEvents(Container.java:1360)
      at java.awt.Container.createHierarchyEvents(Container.java:1357)
      at java.awt.Container.createHierarchyEvents(Container.java:1357)
      at java.awt.Container.addImpl(Container.java:1088)
      - locked <107f2c7f0> (a java.awt.Component$AWTTreeLock)
      at javax.swing.JTabbedPane.insertTab(JTabbedPane.java:703)
      at swingbrowser.TabbedBrowser.addNewTab(TabbedBrowser.java:110)
      at swingbrowser.TabbedBrowser.addNewTab(TabbedBrowser.java:104)
      at swingbrowser.TabbedBrowser.addNewTab(TabbedBrowser.java:143)
      at swingbrowser.TabbedBrowser$2.stateChanged(TabbedBrowser.java:87)
      at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:400)
      at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:253)
      at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:116)
      at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:50)
      at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:599)
      at javax.swing.JTabbedPane.removeTabAt(JTabbedPane.java:958)
      at javax.swing.JTabbedPane.remove(JTabbedPane.java:1005)
      at swingbrowser.TabbedBrowser.closeTab(TabbedBrowser.java:182)
      at swingbrowser.components.ButtonTabComponent$TabButton.actionPerformed(ButtonTabComponent.java:105)
      at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
      at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
      at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
      at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
      at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
      at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
      at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
      at java.awt.Component.processMouseEvent(Component.java:6348)
      at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
      at java.awt.Component.processEvent(Component.java:6113)
      at java.awt.Container.processEvent(Container.java:2085)
      at java.awt.Component.dispatchEventImpl(Component.java:4714)
      at java.awt.Container.dispatchEventImpl(Container.java:2143)
      at java.awt.Component.dispatchEvent(Component.java:4544)
      at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4618)
      at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4282)
      at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4212)
      at java.awt.Container.dispatchEventImpl(Container.java:2129)
      at java.awt.Window.dispatchEventImpl(Window.java:2478)
      at java.awt.Component.dispatchEvent(Component.java:4544)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

      "Java2D Disposer" daemon prio=10 tid=101a27800 nid=0x12a6b1000 in Object.wait() [12a6b0000]
         java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <107e5a920> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
      - locked <107e5a920> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
      at sun.java2d.Disposer.run(Disposer.java:125)
      at java.lang.Thread.run(Thread.java:637)

      "AWT-Shutdown" prio=5 tid=101ad3000 nid=0x1279bd000 in Object.wait() [1279bc000]
         java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <107e5aac0> (a java.lang.Object)
      at java.lang.Object.wait(Object.java:485)
      at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:265)
      - locked <107e5aac0> (a java.lang.Object)
      at java.lang.Thread.run(Thread.java:637)

      "JavaFX Application Thread" daemon prio=5 tid=10305b000 nid=0x7fff710fcbe0 waiting for monitor entry [7fff5fbfb000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      at java.awt.Container.findComponentAtImpl(Container.java:2530)
      - waiting to lock <107f2c7f0> (a java.awt.Component$AWTTreeLock)
      at java.awt.Container.findComponentAt(Container.java:2518)
      at apple.awt.CGlobalCursorManager.findComponentAt(Native Method)
      at apple.awt.CGlobalCursorManager._updateCursor(CGlobalCursorManager.java:145)
      at apple.awt.CGlobalCursorManager.updateCursorImmediately(CGlobalCursorManager.java:75)
      at apple.awt.ComponentModel.updateCursorImmediately(ComponentModel.java:166)
      at java.awt.Component.updateCursorImmediately(Component.java:2919)
      at java.awt.Component.setCursor(Component.java:2903)
      at javafx.embed.swing.JFXPanel$HostContainer.setCursor(JFXPanel.java:650)
      at com.sun.javafx.tk.quantum.EmbeddedScene.setCursor(EmbeddedScene.java:375)
      at javafx.scene.Scene$MouseHandler.updateCursorFrame(Scene.java:2837)
      at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:1811)
      at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:292)
      at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:385)
      at com.sun.javafx.tk.quantum.QuantumToolkit$8.run(QuantumToolkit.java:311)

      "Low Memory Detector" daemon prio=5 tid=101840800 nid=0x11730d000 runnable [00000000]
         java.lang.Thread.State: RUNNABLE

        Attachments

          Activity

            People

            • Assignee:
              dcherepanov Dmitry Cherepanov
              Reporter:
              jgodinez Jennifer Godinez (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Imported: