git: openjdk/leyden: hermetic-java-runtime: 2 new changesets

duke duke at openjdk.org
Mon Nov 27 23:58:24 UTC 2023


Changeset: cd136fcd
Author:    Jiangli Zhou <jianglizhou at google.com>
Date:      2023-10-09 20:05:51 +0000
URL:       https://git.openjdk.org/leyden/commit/cd136fcd70b3011120b4c5f0e1fe7643f7f2f0d4

Delay the initialization of 'jarFileSystem' field in JavaHome.

The earlier https://github.com/jianglizhou/jdk/commit/a4de3f83b33145a46878b37dd25479506534c75b change in ProcessImpl.java causes JavaHome class initialization occur early before the module system initialization. That in turn causes the loading of the "Jar" provider happen before the module system initialization. When running on a hermetic Jar, the system fails to start due to "java.nio.file.ProviderNotFoundException: Provider "jar" not found".

This change delays the initialization of JavaHome.jarFileSystem. It's no longer initialized during JavaHome <clinit>. The initialization of JavaHome.jarFileSystem now happens when the system first tries to access a hermetic JAR packaged JDK resource/property file.

! src/java.base/share/classes/jdk/internal/misc/JavaHome.java

Changeset: df76caf7
Author:    Jiangli Zhou <jianglizhou at google.com>
Date:      2023-10-19 13:32:03 +0000
URL:       https://git.openjdk.org/leyden/commit/df76caf70de46fb1295fe962a007c74dcb8abd4a

Check `isHermetic` for `isHermetic()` as `jarFileSystem` may not initialized yet when `isHermetic()` is called.

This bug was causing java.nio.file.FileSystemException when loading conf/security/java.security.

! src/java.base/share/classes/jdk/internal/misc/JavaHome.java



More information about the leyden-dev mailing list