On Mon, 27 Sep 2021 23:50:38 GMT, Phil Race <p...@openjdk.org> wrote:
>> macOS launcher code sets JAVA_MAIN_CLASS_<pid> which is read by AWT to set >> the name of the application in the system menu bar. >> >> Because this set shortly after the VM is running, it causes a thread safety >> issue described in https://bugs.openjdk.java.net/browse/JDK-8270549 >> >> Since the AWT already looks for the system property >> "apple.awt.application.name" for this same purpose, >> we can set that instead of the env. var and avoid the threading issue. >> >> This trades the JAVA_MAIN_CLASS_<pid> pollution of the environment for >> setting a system property which is visible to apps as well but it seems a >> reasonable trade-off since we already (implicitly) support this variable >> anyway in preference to the env. var. > > Phil Race has updated the pull request incrementally with one additional > commit since the last revision: > > 8274397: [macOS] Stop setting env. var JAVA_MAIN_CLASS_<pid> in launcher > code src/java.base/macosx/native/libjli/java_md_macosx.m line 879: > 877: } > 878: > 879: (*env)->DeleteLocalRef(env, jKey); I am not sure about error handling, the jkey is not removed when NULL_CHECK is used. Also an exceptions are not cleared in case of NULL_CHECK like in other cases, is it intentional? ------------- PR: https://git.openjdk.java.net/jdk/pull/5724