Deadlock: JFXPanel, ContextMenu, macOS

Steven Yi stevenyi at gmail.com
Tue Aug 4 16:19:14 UTC 2020


Thank you!  If there's something else I can do to help assist please let me
know.

All best,
Steven

On Tue, Aug 4, 2020 at 8:20 AM Kevin Rushforth <kevin.rushforth at oracle.com>
wrote:

> And here it is:
>
> https://bugs.openjdk.java.net/browse/JDK-8251038
>
> On 8/4/2020 4:49 AM, Kevin Rushforth wrote:
> > Hi Steven,
> >
> > Thanks for filing the bug. It will be transferred to the JDK project
> > and become publicly visible soon.
> >
> > -- Kevin
> >
> >
> > On 7/31/2020 8:48 AM, Steven Yi wrote:
> >> I haven't seen a bug posted to the system so I suppose it is still under
> >> review. When I submitted it, I got an automated response that there
> >> was an
> >> internal review ID of 9066237 if that is of use to anyone.
> >>
> >> On Fri, Jul 31, 2020 at 8:16 AM Eric Bresie <ebresie at gmail.com> wrote:
> >>
> >>> What was the ticket?
> >>>
> >>> Eric Bresie
> >>> Ebresie at gmail.com
> >>>> On July 30, 2020 at 10:54:47 AM CDT, Kevin Rushforth <
> >>> kevin.rushforth at oracle.com> wrote:
> >>>> Thanks, I'll take a look at it and let you know if we need anything
> >>>> else.
> >>>>
> >>>> -- Kevin
> >>>>
> >>>>
> >>>> On 7/30/2020 8:45 AM, Steven Yi wrote:
> >>>>> Hi Kevin,
> >>>>>
> >>>>> I pasted in the minimal reproducible example with the issue I
> >>>>> filed as
> >>>>> well as a link to the github repo; I hope the everything is in order.
> >>>>>
> >>>>> Thanks,
> >>>>> Steven
> >>>>>
> >>>>>
> >>>>> On Thu, Jul 30, 2020 at 10:57 AM Kevin Rushforth
> >>>>> <kevin.rushforth at oracle.com <mailto:kevin.rushforth at oracle.com>>
> >>> wrote:
> >>>>> If you can provide a small, standalone test case as part of the bug
> >>>>> report, that would be ideal.
> >>>>>
> >>>>> Thanks.
> >>>>>
> >>>>> -- Kevin
> >>>>>
> >>>>>
> >>>>> On 7/30/2020 6:46 AM, Steven Yi wrote:
> >>>>>> Hi Michael,
> >>>>>>
> >>>>>> Thanks for the link, I missed that when I went to explore JBS.
> >>>>> I'll report
> >>>>>> the issue there.
> >>>>>>
> >>>>>> All best,
> >>>>>> Steven
> >>>>>>
> >>>>>>
> >>>>>> On Thu, Jul 30, 2020 at 3:25 AM Michael Paus <mp at jugs.org
> >>>>> <mailto:mp at jugs.org>> wrote:
> >>>>>>> Hi Steven,
> >>>>>>> the right place for bug reports like this is here:
> >>>>>>> <https://bugs.java.com/bugdatabase/>
> >>>>>>> Michael
> >>>>>>>
> >>>>>>> Am 30.07.20 um 01:28 schrieb Steven Yi:
> >>>>>>>> Hi All,
> >>>>>>>>
> >>>>>>>> I'm not sure if this is the place to report this, but
> >>>>> hopefully so. (I
> >>>>>>> did
> >>>>>>>> not see a way to create an account or report issues on JBS.)
> >>>>>>>>
> >>>>>>>> I am using JavaFX embedded within a Swing application and had
> >>>>> found
> >>>>>>>> intermittent deadlocks on macOS that I wasn't sure why it was
> >>>>> happening.
> >>>>>>> I
> >>>>>>>> was finally able to create a minimal working example and have
> >>>>> published
> >>>>>>> it
> >>>>>>>> here:
> >>>>>>>>
> >>>>>>>> https://github.com/kunstmusik/ContextMenuHangingTest
> >>>>>>>>
> >>>>>>>> The switching applications seems to be a key to getting the
> >>>>> deadlock to
> >>>>>>>> happen. Testing with debugger in Netbeans, when the app
> >>>>> freezes, I paused
> >>>>>>>> the app and saw this in the Java FX Application Thread stack:
> >>>>>>>>
> >>>>>>>> "JavaFX Application Thread"
> >>>>>>>> at sun.lwawt.macosx.LWCToolkit.doAWTRunLoopImpl(LWCToolkit.java)
> >>>>>>>> at sun.lwawt.macosx.LWCToolkit.doAWTRunLoop(LWCToolkit.java:913)
> >>>>>>>> at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:694)
> >>>>>>>> at sun.lwawt.macosx.LWCToolkit.invokeAndWait(LWCToolkit.java:639)
> >>>>>>>> at
> >>>>> sun.lwawt.macosx.CAccessibility.invokeAndWait(CAccessibility.java:94)
> >>>>>>>> at
> >>>>>
> sun.lwawt.macosx.CAccessibility.getFocusOwner(CAccessibility.java:548)
> >>>>>
> >>>>>>>> at com.sun.glass.ui.mac.MacWindow._setView(MacWindow.java)
> >>>>>>>> at com.sun.glass.ui.Window.setView(Window.java:416)
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.tk.quantum.WindowStage.lambda$setScene$0(WindowStage.java:287)
>
> >>>
> >>>>>>>> at
> >>> com.sun.javafx.tk.quantum.WindowStage$$Lambda$359.792704517.get
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.tk.quantum.QuantumToolkit.runWithRenderLock(QuantumToolkit.java:430)
>
> >>>
> >>>>>>>> at
> >>>>> com.sun.javafx.tk.quantum.WindowStage.setScene(WindowStage.java:286)
> >>>>>>>> at javafx.stage.Window$12.invalidated(Window.java:1085)
> >>>>>>>> at
> >>>>>>>>
> >>>
> javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
> >>>
> >>>>>>>> at javafx.stage.Window.setShowing(Window.java:1174)
> >>>>>>>> at javafx.stage.Window.show(Window.java:1189)
> >>>>>>>> at javafx.stage.PopupWindow.showImpl(PopupWindow.java:472)
> >>>>>>>> at javafx.stage.PopupWindow.show(PopupWindow.java:417)
> >>>>>>>> at javafx.scene.control.ContextMenu.doShow(ContextMenu.java:323)
> >>>>>>>> at javafx.scene.control.ContextMenu.show(ContextMenu.java:265)
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.kunstmusik.contextmenuhangingtest.HangingTest.lambda$main$0(HangingTest.java:29)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.kunstmusik.contextmenuhangingtest.HangingTest$$Lambda$191.1699780362.handle
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
>
> >>>
> >>>>>>>> at
> >>> com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
> >>>>>>>> at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
> >>>>>>>> at javafx.event.Event.fireEvent(Event.java:198)
> >>>>>>>> at javafx.scene.Node.fireEvent(Node.java:8885)
> >>>>>>>> at javafx.scene.control.Button.fire(Button.java:203)
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.scene.control.behavior.ButtonBehavior$$Lambda$247.642849157.handle
>
> >>>
> >>>>>>>> at
> >>>
> com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.scene.control.inputmap.InputMap$$Lambda$242.1652994145.handle
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
>
> >>>
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
>
> >>>
> >>>>>>>> at
> >>> com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
> >>>>>>>> at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
> >>>>>>>> at javafx.event.Event.fireEvent(Event.java:198)
> >>>>>>>> at javafx.scene.Scene$MouseHandler.process(Scene.java:3890)
> >>>>>>>> at javafx.scene.Scene.processMouseEvent(Scene.java:1885)
> >>>>>>>> at
> >>>>> javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2618)
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.tk.quantum.EmbeddedScene.lambda$mouseEvent$4(EmbeddedScene.java:287)
>
> >>>
> >>>>>>>> at
> >>>>> com.sun.javafx.tk.quantum.EmbeddedScene$$Lambda$322.1002466434.run
> >>>>>>>> at
> >>>>> java.security.AccessController.doPrivileged(AccessController.java)
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.tk.quantum.EmbeddedScene.lambda$mouseEvent$5(EmbeddedScene.java:280)
>
> >>>
> >>>>>>>> at
> >>>>> com.sun.javafx.tk.quantum.EmbeddedScene$$Lambda$321.1000105301.run
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
>
> >>>
> >>>>>>>> at
> >>>>> com.sun.javafx.application.PlatformImpl$$Lambda$163.1646337711.run
> >>>>>>>> at
> >>>>> java.security.AccessController.doPrivileged(AccessController.java)
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
>
> >>>
> >>>>>>>> at
> >>>>> com.sun.javafx.application.PlatformImpl$$Lambda$162.158199555.run
> >>>>>>>> at
> >>>>>>>>
> >>>
> com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
>
> >>>
> >>>>>>>> Any help would be very much appreciated.
> >>>>>>>>
> >>>>>>>> Thanks,
> >>>>>>>> Steven
> >>>>>>>
> >
>
>


More information about the openjfx-dev mailing list