On Tue, 26 May 2026 21:48:27 GMT, Marius Hanl <[email protected]> wrote:
> This replaces all `JNI_VERSION` version strings with `JNI_VERSION_1_8`.
> All of JavaFX is `JNI_VERSION_1_8` now.
>
> - Tested with JLink+JPackage (with and without JMods)
> - Tested with GraalVM (newest version 25)
>
> Sometimes this allowed to replace code that was always built like this:
>
>
> #ifdef JNI_VERSION_1_8
> //min. returned JNI_VERSION required by JDK8 for builtin libraries
> JNIEnv *env;
> if ((*vm)->GetEnv(vm, (void **)&env, JNI_VERSION_1_8) != JNI_OK) {
> return JNI_VERSION_1_4;
> }
> ...
>
>
> with:
>
> return JNI_VERSION_1_8;
>
>
> **Question**
>
> There are a few locations where we have the following pattern;
>
> if (jvm->GetEnv((void **)&env, JNI_VERSION_1_8)) {
> return JNI_ERR; /* JNI version not supported */
> }
>
> which should not happen anymore, right?
> Most of the code locations do not have this check and just do:
>
> jvm->GetEnv(&env, JNI_VERSION_1_8);
>
> Should I follow that pattern for the few locations left?
>
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK
> Interim AI Policy](https://openjdk.org/legal/ai).
What confuses me is that there are checks like `if (envStatus ==
JNI_EDETACHED)` in e.g. `gtk/GlassApplication.cpp`.
On the other hand returning `JNI_ERR` and the comment `/* JNI version not
supported */` while `JNI_EDETACHED` could also be returned is also weird.
-------------
PR Comment: https://git.openjdk.org/jfx/pull/2175#issuecomment-4603784438