On Thu, 12 Sep 2024 23:11:31 GMT, Justin Lu <[email protected]> wrote:
>> Please review this PR which restores the correct exception message when the
>> current working directory can not be found during java startup in
>> `initPhase1`.
>>
>> Both MacOS and Linux are expected to fail with `java.lang.Error: Properties
>> init: Could not determine current working directory` if the _user.dir_
>> system property cannot be initialized. Currently, MacOS now fails with
>> `java.lang.InternalError: platform encoding not initialized` and Linux fails
>> with `java.lang.InternalError: null property: user.dir` which are both
>> unexpected messages.
>>
>> In `System.c`,
>> `Java_jdk_internal_util_SystemProps_00024Raw_platformProperties` calls
>> `GetJavaProperties(JNIEnv *env)` which throws an internal error (with an
>> appropriate message) for Unix platforms when the current working directory
>> cannot be found. However, this exception is never checked and thus
>> unexpected failures occur later. NULL should be returned after the exception
>> is thrown, so that the initialization fails with the expected error when the
>> return value is checked.
>>
>>
>> // Get the platform specific values
>> sprops = GetJavaProperties(env);
>> CHECK_NULL_RETURN(sprops, NULL);
>>
>>
>> Testing done locally on both platforms.
>
> Justin Lu has updated the pull request incrementally with one additional
> commit since the last revision:
>
> return null in exception site instead
LGTM.
src/java.base/unix/native/libjava/java_props_md.c line 524:
> 522: char buf[MAXPATHLEN];
> 523: errno = 0;
> 524: if (getcwd(buf, sizeof(buf)) == NULL) {
Suggestion:
if (getcwd(buf, sizeof(buf)) == NULL) {
-------------
Marked as reviewed by naoto (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/20975#pullrequestreview-2303545874
PR Review Comment: https://git.openjdk.org/jdk/pull/20975#discussion_r1759149656