RFR: 8340005: Eliminate native access calls from javafx.swing [v2]

Andy Goryachev angorya at openjdk.org
Tue Oct 15 18:21:17 UTC 2024


On Tue, 15 Oct 2024 17:46:33 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

>> While implementing [JDK-8339517](https://bugs.openjdk.org/browse/JDK-8339517) to eliminate native access warnings by passing "--enable-native-access" for the three JavaFX modules with native code (javafx.graphics, javafx.media, and javafx.web), it was found  that the Swing interop code in javafx.swing calls a JNI method defined in one of the native graphics libraries (prism-common) directly
>> 
>> This means that even after [JDK-8339517](https://bugs.openjdk.org/browse/JDK-8339517) is fixed, we still get native access warnings when running any test that uses SwingNode.
>> 
>> This fixes the native access warning by making javafx.graphics module call the native JNI and Swing-interop calls the static utility method in javafx.graphics, in this case defined in PlatformImpl
>> 
>> All test.javafx.embed.swing SwingNode tests are running ok without any native warning
>
> Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Move native method to Application

modules/javafx.graphics/src/main/native-prism/SwingInterop.c line 27:

> 25: 
> 26: #include <jni.h>
> 27: #include "com_sun_glass_ui_Application.h"

unrelated: do we have steps to ensure that the JNI headers are always included, or it is up to the reviewers?

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1600#discussion_r1801701156


More information about the openjfx-dev mailing list