[ 
https://issues.apache.org/jira/browse/MSHADE-420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17696476#comment-17696476
 ] 

Herve Boutemy edited comment on MSHADE-420 at 1/21/24 2:14 AM:
---------------------------------------------------------------

digging into the case: it seems the issue comes from entries that are stored in 
original jar file not with basic xdostime but with mtime from extra field data: 
shade plugin gets the extra field then stores as xdostime, where the timezone 
shift is added...

see getTime() vs setTime() in 
https://github.com/JetBrains/jdk8u_jdk/blob/master/src/share/classes/java/util/zip/ZipEntry.java#L146

it seems we'll need to reuse original ZipEntry to benefit from its full 
configuration instead of creating a new ZipEntry where we explicitely set the 
time...

https://github.com/apache/maven-shade-plugin/blob/bd4759be25fc62441536033aa8ac335a9bbfddb8/src/main/java/org/apache/maven/plugins/shade/DefaultShader.java#L320

and given JDK ZipEntry can't change the entry name, we'll need to switch to 
commons-compress ZipArchiveEntry 
https://commons.apache.org/proper/commons-compress/apidocs/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.html


was (Author: hboutemy):
digging into the case: it seems the issue comes from entries that are stored in 
original jar file not with basic xdostime but with mtime from extra field data: 
shade plugin gets the extra field then stores as xdostime, where the timezone 
shift is added...

see getTime() vs setTime() in 
https://github.com/JetBrains/jdk8u_jdk/blob/master/src/share/classes/java/util/zip/ZipEntry.java#L146

it seems we'll need to reuse original ZipEntry to benefit from its full 
configuration instead of creating a new ZipEntry where we explicitely set the 
time...
and given JDK ZipEntry can't change the entry name, we'll need to switch to 
commons-compress ZipArchiveEntry 
https://commons.apache.org/proper/commons-compress/apidocs/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.html

> Reproducible Builds timestamp issue in some cases
> -------------------------------------------------
>
>                 Key: MSHADE-420
>                 URL: https://issues.apache.org/jira/browse/MSHADE-420
>             Project: Maven Shade Plugin
>          Issue Type: Bug
>    Affects Versions: 3.2.4
>            Reporter: Herve Boutemy
>            Priority: Major
>
> seen in Tika 
> https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/tika/tika-2.4.0.diffoscope
> maven-shade-plugin 3.2.4 has an issue with timestamps in unexplained 
> circumstances:
> why does 21-Nov-20 20:25 from reference become 21-Nov-21 01:25 in rebuild?
> why does 20-May-14 07:15 from reference become 20-May-14 11:15 in rebuild?
> could be related to the timezone of the rebuilder?
> {noformat}
> 21 / 44 target/reference/tika-parser-nlp-package-2.4.0.jar 
> tika-parsers/tika-parsers-ml/tika-parser-nlp-package/target/tika-parser-nlp-package-2.4.0.jar
> --- target/reference/tika-parser-nlp-package-2.4.0.jar
> +++ 
> tika-parsers/tika-parsers-ml/tika-parser-nlp-package/target/tika-parser-nlp-package-2.4.0.jar
> ├── zipinfo {}
> │ @@ -9868,1231 +9868,1231 @@
> │  -rw----     2.0 fat      932 bl defN 22-Apr-08 17:41 schemas/wsdl/xmime.xsd
> │  -rw----     2.0 fat     5840 bl defN 22-Apr-08 17:41 schemas/wsdl/xml.xsd
> │ --rw----     2.0 fat        0 bl defN 21-Nov-20 20:25 
> META-INF/maven/com.fasterxml.woodstox/
> │ --rw----     2.0 fat        0 bl defN 21-Nov-20 20:25 
> META-INF/maven/com.fasterxml.woodstox/woodstox-core/
> │ --rw----     2.0 fat       70 bl defN 21-Nov-20 20:25 
> META-INF/maven/com.fasterxml.woodstox/woodstox-core/pom.properties
> │ --rw----     2.0 fat    15917 bl defN 21-Nov-20 20:25 
> META-INF/maven/com.fasterxml.woodstox/woodstox-core/pom.xml
> ...
> │ --rw----     2.0 fat      722 bl defN 20-May-14 07:15 
> org/codehaus/stax2/validation/XMLValidationSchema.class
> │ --rw----     2.0 fat     7795 bl defN 20-May-14 07:15 
> org/codehaus/stax2/validation/XMLValidationSchemaFactory.class
> │ --rw----     2.0 fat     1801 bl defN 20-May-14 07:15 
> org/codehaus/stax2/validation/XMLValidator.class
> │ +-rw----     2.0 fat        0 bl defN 21-Nov-21 01:25 
> META-INF/maven/com.fasterxml.woodstox/
> │ +-rw----     2.0 fat        0 bl defN 21-Nov-21 01:25 
> META-INF/maven/com.fasterxml.woodstox/woodstox-core/
> │ +-rw----     2.0 fat       70 bl defN 21-Nov-21 01:25 
> META-INF/maven/com.fasterxml.woodstox/woodstox-core/pom.properties
> │ +-rw----     2.0 fat    15917 bl defN 21-Nov-21 01:25 
> META-INF/maven/com.fasterxml.woodstox/woodstox-core/pom.xml
> ...
> │ +-rw----     2.0 fat      722 bl defN 20-May-14 11:15 
> org/codehaus/stax2/validation/XMLValidationSchema.class
> │ +-rw----     2.0 fat     7795 bl defN 20-May-14 11:15 
> org/codehaus/stax2/validation/XMLValidationSchemaFactory.class
> │ +-rw----     2.0 fat     1801 bl defN 20-May-14 11:15 
> org/codehaus/stax2/validation/XMLValidator.class
> │  -rw----     2.0 fat        0 bl defN 21-Sep-14 14:41 
> META-INF/maven/org.apache.ws.xmlschema/
> │  -rw----     2.0 fat        0 bl defN 21-Sep-14 14:41 
> META-INF/maven/org.apache.ws.xmlschema/xmlschema-core/
> │  -rw----     2.0 fat      146 bl defN 21-Sep-14 14:41 
> META-INF/maven/org.apache.ws.xmlschema/xmlschema-core/pom.properties
> │  -rw----     2.0 fat     6857 bl defN 21-Sep-14 14:41 
> META-INF/maven/org.apache.ws.xmlschema/xmlschema-core/pom.xml
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to