On Thu, 12 Sep 2024 12:51:27 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

>> When running JavaFX tests and apps with JDK 24, we now get illegal access 
>> warnings of the following form:
>> 
>> 
>> WARNING: A restricted method in java.lang.System has been called
>> WARNING: java.lang.System::load has been called by 
>> com.sun.glass.utils.NativeLibLoader in module javafx.graphics 
>> (file:build/shims/javafx.graphics/)
>> WARNING: Use --enable-native-access=javafx.graphics to avoid a warning for 
>> callers in this module
>> WARNING: Restricted methods will be blocked in a future release unless 
>> native access is enabled
>> 
>> 
>> With the current jfx master, I get 301 such warnings on my macOS system (see 
>> the `test.log` file attached to the JBS bug report).
>> 
>> In order to avoid those warnings, and to avoid the eventual errors in the 
>> future, we need to pass one of the following two options when running test 
>> programs:
>> 
>> * "java --enable-native-access=javafx.graphics,javafx.media,javafx.web" -- 
>> for unit tests in the web and systemTests subprojects, as well as in the 
>> generated `build/run.args` file
>> * "java --enable-native-access=javafx.graphics" -- for all other unit tests
>> 
>> With this patch, we are down to 5 such warnings on macOS (on Linux there are 
>> few more, but the reasons are the same). The remaining warnings are due to 
>> the following two issues:
>> 
>> 1. We are making a native JNI call from javafx.swing, which we should not be 
>> doing. This is a JavaFX bug. The native library in question is loaded by the 
>> javafx.graphics modules, so the solution will likely be to move the native 
>> method call to somewhere in javafx.graphics and call that new method from 
>> javafx.swing.
>> 2. We have two unit tests that use a custom `ModuleLayer` to load the JavaFX 
>> modules at runtime, after the test application is launched. In this case the 
>> "--enable-native-access" is ineffective. I suspect this is a JDK bug.
>> 
>> I will file a pair of follow-on bugs for these.
>
> Kevin Rushforth has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Enable native access in ModuleLayer tests (using reflection until JDK 22 is 
> the minimum)

Verified that warnings disappear with this change.

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

Marked as reviewed by arapte (Reviewer).

PR Review: https://git.openjdk.org/jfx/pull/1562#pullrequestreview-2303514057

Reply via email to