RFR: 8274397: [macOS] Stop setting env. var JAVA_MAIN_CLASS_<pid> in launcher code [v2]

Doug Simon dnsimon at openjdk.java.net
Tue Sep 28 15:44:35 UTC 2021

On Mon, 27 Sep 2021 23:50:38 GMT, Phil Race <prr at 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 842:

> 840:      * of the app as it appears in the system menu bar.
> 841:      *
> 842:      * Not idea if how much external code ever sets it, but use it if set, else

"Not idea if" -> "No idea of"


PR: https://git.openjdk.java.net/jdk/pull/5724

More information about the core-libs-dev mailing list