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

Seems like a good fix. This seems to have been working by accident for a long 
time. IIUC the fix for 
[JDK-8305746](https://bugs.openjdk.org/browse/JDK-8305746) introduced a Java 
call that would have encountered this pending exception, but that code then 
clears any pending exception allowing things to proceed when we failed to setup 
the encoding properly and so then trigger the unexpected exception.

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

Marked as reviewed by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/20975#pullrequestreview-2302107944

Reply via email to