> 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: ModuleLayer tests need to enable native access for unnamed module ------------- Changes: - all: https://git.openjdk.org/jfx/pull/1562/files - new: https://git.openjdk.org/jfx/pull/1562/files/0d41aacd..bc93221e Webrevs: - full: https://webrevs.openjdk.org/?repo=jfx&pr=1562&range=01 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1562&range=00-01 Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 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