> 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

Reply via email to