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

Reply via email to