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