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) I filed the following two follow-up bugs: [JDK-8340005](https://bugs.openjdk.org/browse/JDK-8340005): Eliminate native access calls from javafx.swing [JDK-8340004](https://bugs.openjdk.org/browse/JDK-8340004): [TestBug] Call ModuleLayer.Controller::enableNativeAccess directly rather than via reflection ------------- PR Comment: https://git.openjdk.org/jfx/pull/1562#issuecomment-2346203738