On Tue, 20 Jan 2026 12:36:54 GMT, Christian Stein <[email protected]> wrote:
> Please review this change to make `jar --validate` check an automatic module > name given in a manifest file, via the `Automatic-Module-Name` attribute. > > Prior to this commit, a `MANFEST.MF` reading > > Automatic-Module-Name: default > > added into a JAR file named `a.jar` would not fail when passed to `jar > --validate --file a.jar`. However, it does fail when the JAR file is put on > the module path of the Java launcher. For example: > > $ java --module-path a.jar --describe-module default > > Error occurred during initialization of boot layer > java.lang.module.FindException: Unable to derive module descriptor for a.jar > Caused by: java.lang.module.FindException: Automatic-Module-Name: default: > Invalid module name: 'default' is not a Java identifier > > > With this change applied, `jar --validate --file a.jar` will print an error > message and return a non-zero exit value: > > > invalid module name of Automatic-Module-Name entry in manifest: default > > > The new check also fails for when the module name of a compiled module > descriptor differs from the value given in the manifest file of the same JAR > file. This pull request has now been integrated. Changeset: 8095e33e Author: Christian Stein <[email protected]> URL: https://git.openjdk.org/jdk/commit/8095e33ee88759cf2fbe61e2284d95f6b7fb9a3a Stats: 89 lines in 3 files changed: 80 ins; 6 del; 3 mod 8375433: jar should validate automatic module names Reviewed-by: jvernee ------------- PR: https://git.openjdk.org/jdk/pull/29316
