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

I've added code in the launcher part that strips the package name from what is 
seen.
This was previously done in the AWT code for MAIN_CLASS_<pid> since it was 
presumably the only code setting that but I didn't do it because before because 
I didn't want to interfere with what an app might have set as the system 
property .. but .. if the app didn't set it and we derived it, then I realised 
we probably should be consistent with what happened before and only the 
launcher code knows whether it was set by itself or the app

-------------

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

Reply via email to