On Fri, 23 Aug 2024 09:17:43 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

> The testcase calls Platform.exit before the dialog is made visible but
> on macOS, JavaFX takes over the AppKit thread and uses that as the FX 
> application thread. As part of the FX platform shutdown process, it detaches 
> that thread from the JVM. This means that the AppKit thread is no longer 
> available to Java processes
> so AWT crashes when it ties to access appkit thread.
> Fix is made to check if the thread has been detached for move-resize 
> notification event before proceeding..

src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.m line 640:

> 638:     if (ret == JNI_EDETACHED) {
> 639:         return;
> 640:     }

This seems like a completely arbitrary location in the AWT code for a test of 
something that would seem completely unexpected.
Can you PROVE that this is the only place that this will ever be needed ?
And if you can't, this isn't the right fix.
If you can it needs some comments.

Also : does AWT detach the AppKit thread from the VM on shutdown ?
IF not why does FX have to do it ? If it does, then could FX also crash if FX 
is embedded in an AWT app.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20688#discussion_r1729333420

Reply via email to