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

Phil Race prr at openjdk.java.net
Mon Sep 27 21:20:47 UTC 2021


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.

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

Commit messages:
 - 8274397: [macOS] Stop setting env. var JAVA_MAIN_CLASS_<pid> in launcher code
 - 8274397: [macOS] Stop setting env. var JAVA_MAIN_CLASS_<pid> in launcher code

Changes: https://git.openjdk.java.net/jdk/pull/5724/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5724&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8274397
  Stats: 75 lines in 2 files changed: 33 ins; 33 del; 9 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5724.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5724/head:pull/5724

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


More information about the core-libs-dev mailing list