RFR: 8261785: Calling "main" method in anonymous nested class crashes the JVM

Sergey Bylokhov serb at openjdk.java.net
Tue Mar 16 07:47:08 UTC 2021


On Tue, 16 Mar 2021 01:55:49 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

>> This patch ensure launcher won't crash JVM for the new static Methods from local/anonymous class on MacOS.
>> 
>> As @dholmes-ora pointed out in the analysis, this is a MacOS specific bug when the launcher trying to grab class name to be displayed as the Application name on the menu.
>> 
>> The fix is to not setting name, test shows that GUI java application shows 'bin' as the application name. It's possible for us to set the name to something more friendly, for example, "Java", but I am not sure that should be launcher's responsibility to choose such a default name. It seems to me the consumer of the JAVA_MAIN_CLASS_%d environment variable should be responsible to pick such name in case the environment variable is not set.
>
> This bug is similar to https://bugs.openjdk.java.net/browse/JDK-8076264, and the fix looks fine.

> Maybe the AWT folk should decide what name should be displayed in this
> case. The canonical name was chosen when all main classes had to have a
> canonical name. So perhaps a simple name will suffice in the case where
> there is no canonical name?

This is not the last attempt to set the name, the JAVA_MAIN_CLASS_ variable is used in the middle of the name selection, there are some others. And the "bin" is selected by some of the next step, I agree it is not a friendly name that could be improved.

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

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


More information about the hotspot-runtime-dev mailing list