On Tue, 28 Mar 2023 06:28:17 GMT, Jaikiran Pai <j...@openjdk.org> wrote:

>> Can I please get a review for this change which proposes to fix the issue 
>> reported in https://bugs.openjdk.org/browse/JDK-8206890?
>> 
>> The `jlink` command allows a `--endian` option to specify the byte order in 
>> the generated image. Before this change, when such a image was being 
>> launched, the code would assume the byte order in the image to be the native 
>> order of the host where the image is being launched. That would result in 
>> failure to launch java, as noted in the linked issue.
>> 
>> The commit in this PR, changes relevant places to not assume native order 
>> and instead determine the byte order by reading the magic bytes in the image 
>> file's header content.
>> 
>> A new jtreg test has been added which reproduces the issue and verifies the 
>> fix.
>
> Jaikiran Pai has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   use test.jdk system property in test

test/jdk/tools/jlink/plugins/CDSPluginTest.java line 93:

> 91:            System.out.println("---- Test different platforms scenario 
> ----");
> 92:            String jlinkPath = JDKToolFinder.getJDKTool("jlink");
> 93:            // copy over the java.base and java.logging module file to a 
> temporary directory

This should say that it copies the packaged modules for java.base and 
java.logging.

test/jdk/tools/jlink/plugins/CDSPluginTest.java line 97:

> 95:            // separate --module-path will force the JLink task to read 
> the ModuleTarget from
> 96:            // the java.base module-info.class to identify the target 
> platform for the image
> 97:            // being generated.

I'm a bit uncomfortable with change the test for the CDS plugin as part of this 
change but can live with it.

test/jdk/tools/jlink/plugins/CDSPluginTest.java line 125:

> 123:     }
> 124: 
> 125:     private static void copyModuleFiles(Path jdkRoot, Path targetDir, 
> String[] modules)

This method copies "packaged modules" so I think should be renamed to 
copyPackagedModules.

test/jdk/tools/jlink/plugins/CDSPluginTest.java line 136:

> 134:             if (!Files.exists(copy)) {
> 135:                 throw new AssertionError("Could not copy '" + module
> 136:                         + "' module file to directory: " + targetDir);

Files.copy throws if it fails so no need for the Files.exists check here.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/11943#discussion_r1150410251
PR Review Comment: https://git.openjdk.org/jdk/pull/11943#discussion_r1150411725
PR Review Comment: https://git.openjdk.org/jdk/pull/11943#discussion_r1150409630
PR Review Comment: https://git.openjdk.org/jdk/pull/11943#discussion_r1150409681

Reply via email to