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.

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

Commit messages:
 - Merge remote-tracking branch 'upstream/master' into 8339517-enable-jni
 - Add --enable-native-access in two tests that don't use run.args
 - 8339517: Add --enable-native-access flag when running tests

Changes: https://git.openjdk.org/jfx/pull/1562/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1562&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8339517
  Stats: 37 lines in 3 files changed: 32 ins; 0 del; 5 mod
  Patch: https://git.openjdk.org/jfx/pull/1562.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1562/head:pull/1562

PR: https://git.openjdk.org/jfx/pull/1562

Reply via email to