Thank you. Notes below.

updated webrev: http://cr.openjdk.java.net/~jlaskey/8241602/webrev-00 
<http://cr.openjdk.java.net/~jlaskey/8241602/webrev-00>


> On May 6, 2020, at 4:14 AM, Alan Bateman <alan.bate...@oracle.com> wrote:
> 
> On 05/05/2020 20:56, Jim Laskey wrote:
>> This fix addresses the inconsistent ordering by jimage content by jlink from 
>> run to run. Bottom line, the implementer was using HashSet without defining 
>> hashcode/equals for the Set entry classes.
>> 
>> webrev: http://cr.openjdk.java.net/~jlaskey/8241602/webrev-00 
>> <http://cr.openjdk.java.net/~jlaskey/8241602/webrev-00>
>> jbs: https://bugs.openjdk.java.net/browse/JDK-8241602 
>> <https://bugs.openjdk.java.net/browse/JDK-8241602>
>> 
> DirArchive and JmodArchive look okay. They could use Objects.hash/equals but 
> what you have is okay too. Can you re-check JarArchive as it is created with 
> a runtime version so equals should be checking 3 fields.

Opted to use Objects. Added version for JarArchive (not convinced needed but 
should be benign.)

> 
> The existing test for reproducible builds is JLinkReproducibleTest. Adding a 
> new test is okay too but we should at least try to keep the names consistent. 
> A couple of suggestions for the test in the webrev:
> - the @modules tag needs to include java.desktop as it is needed by the test. 
> Better still would be to change to java.se so that there are more modules in 
> the images.

Switched to  java.se, only a second slower than java.desktop . Overall better 
test than JLinkReproducibleTest for increased likelihood of variance.

> - Did you mean to open jdk.tools.jlink.internal? Maybe its a leftover from a 
> previous iteration of the test?

Nope, Yep.

> - You can use Files.mismatch to compare the lib/modules files are identical 
> (like JLinkReproducibleTest).  It's okay to use the jimage ImageReaderFactory 
> to check the names tables too but I think it's more important to check that 
> the lib/modules files are identical before probing further.

I had it in my mind there was a timestamp in the file, but then I remembered 
there wasn't. Switched to Files.mismatch. Everything else is redundant.

Aside: The order in the file is still somewhat scattered, based on archive and 
archive content.  We have the a pattern based sorting plugin which we don't use 
and we never did any locality vs performance testing.

> 
> -Alan

Reply via email to