On Thu, 27 Apr 2023 13:39:37 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> Jim Laskey has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   PreviewFeatures.isEnabled()
>
> src/java.base/share/classes/sun/launcher/LauncherHelper.java line 45:
> 
>> 43: import java.lang.invoke.MethodHandles;
>> 44: import java.lang.invoke.MethodHandles.Lookup;
>> 45: import java.lang.invoke.MethodType;
> 
> Left over from an earlier version?

Yep.

> src/java.base/share/classes/sun/launcher/resources/launcher.properties line 
> 240:
> 
>> 238:      Caused by: {1}: {2}
>> 239: java.launcher.cls.error8=\
>> 240:     Error: no non-private no argument constructor found in class {0}
> 
> Since this feature is for new developers then the error messages will need to 
> be understand, maybe it should be "zero argument" and give an example to help.

java.launcher.cls.error8=\
    Error: no non-private zero argument constructor found in class {0}\n\
    remove private from existing constructor or define as:\n\
\   public {0}() {}

> src/java.base/share/native/libjli/java.c line 590:
> 
>> 588:         CHECK_EXCEPTION_NULL_LEAVE(mainID);
>> 589:         (*env)->CallVoidMethod(env, mainObject, mainID);
>> 590:         break;
> 
> This calls into LauncherHelper to get the "main type", then calls the static 
> or new/instance method. I'm wondering if you tried have a single entry point 
> in LauncherHelper instead. I think the only downside might be that the 
> trampoline would show up in stack traces but @Hidden could hide that.

Good idea. If @hidden doesn't work then we can eat the trace entries.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13689#discussion_r1179518999
PR Review Comment: https://git.openjdk.org/jdk/pull/13689#discussion_r1179528956
PR Review Comment: https://git.openjdk.org/jdk/pull/13689#discussion_r1179517981

Reply via email to