[ 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)