On Wed, 28 Aug 2024 02:19:08 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..
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Reattach thread if AWT is the owner of NSApplication

src/java.desktop/macosx/native/libosxapp/ThreadUtilities.m line 67:

> 65: }
> 66: 
> 67: + (JNIEnv*)getJNIEnv {

The cached version of 'getJNIEnv' was added for performance reasons to skip 
`attachCurrentThread` if we know for sure that initialization has already 
completed. But is it still necessary to track all this flags now, maybe the 
`attachCurrentThread` now smart enough to check that the current thread was 
already attached, or it is just fast enough?

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

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

Reply via email to