On Thu, 12 Sep 2024 23:11:31 GMT, Justin Lu <j...@openjdk.org> 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

Reply via email to