On Mon, 26 Jan 2026 08:36:39 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.
>
> Christian Stein has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Address review comments

test/jdk/tools/jar/ValidatorTest.java line 314:

> 312:     @Test
> 313:     public void testInvalidAutomaticModuleName() throws Exception {
> 314:         System.out.printf("%n%n*****Creating Jar with invalid 
> Automatic-Module-Name in Manifest*****%n%n");

Should this be System.err so that it is inlined with the JUnit output.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29316#discussion_r2733180819

Reply via email to