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

Phil Race prr at openjdk.java.net
Tue Oct 5 00:25:44 UTC 2021


On Fri, 1 Oct 2021 21:10:27 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: Stop setting env. var JAVA_MAIN_CLASS_<pid> in launcher code

I just pushed a small update to the new test.
The compiled class file of the child process was not found when I ran it in our test framework even though jtreg run locally found it. I just had to explicitly add the location of the compiled classes to the classpath. 
So it is just about getting the test to run in that env. rather than any problem with the fix, or the test logic.
This update HAS passed in that framework - as well as locally

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

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



More information about the client-libs-dev mailing list