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 The change looks okay, leads to better exception at least. It's a really odd scenario to arise in the first place. You might want to adjust the JBS/PR title as "VM crash" is a bit mis-leading. ------------- Marked as reviewed by alanb (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/20975#pullrequestreview-2302227712