RFR: 8273485: Deadlock when also using Swing and exiting Fullscreen on Mac [v6]

Kevin Rushforth kcr at openjdk.java.net
Thu Oct 14 17:17:55 UTC 2021


On Tue, 28 Sep 2021 12:07:36 GMT, Florian Kirmaier <fkirmaier at openjdk.org> wrote:

>> When using Swing it's possible to generate a Deadlock.
>>  It's related to the nested eventloop started in enterFullScreenExitingLoop - and the RenderLock aquired when using setView in Scene.
>>  Sample Programm and Threaddump are added to the ticket.
>> 
>> Removing the nested loop fixes the Problem. 
>> I hope this doesn't have any side effect - so far i don't know of any.
>
> Florian Kirmaier has updated the pull request incrementally with one additional commit since the last revision:
> 
>   JDK-8273485
>   removed the toggle fullscreen before closing - to avoid the beep and improve the user experience

I think that removing the call to `toggleFullScreen` in `exitFullscreenWithAnimate` is what's causing the failure to exit from fullScreen.

modules/javafx.graphics/src/main/native-glass/mac/GlassViewDelegate.m line 1349:

> 1347:             [self->nativeFullScreenModeWindow performSelector:@selector(toggleFullScreen:) withObject:nil];
> 1348:             // wait until the operation is complete
> 1349:             [GlassApplication enterFullScreenExitingLoop];

You will need to restore the call to `toggleFullScreen` in order to support exiting from full-screen.

-------------

Changes requested by kcr (Lead).

PR: https://git.openjdk.java.net/jfx/pull/622


More information about the openjfx-dev mailing list