[ https://issues.apache.org/jira/browse/COMPRESS-621?focusedWorklogId=831776&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-831776 ]
ASF GitHub Bot logged work on COMPRESS-621: ------------------------------------------- Author: ASF GitHub Bot Created on: 07/Dec/22 14:01 Start Date: 07/Dec/22 14:01 Worklog Time Spent: 10m Work Description: Glavo opened a new pull request, #334: URL: https://github.com/apache/commons-compress/pull/334 Since the zip central directory is at the file end, we can splice other content before the zip file. As an example, in Java 9 and above, the `$JAVA_HOME/jmods` folder contains some files with the extension `jmod`. The jmod file is a normal zip file, but the file starts with the four-byte magic number `0x4A 0x4D 0x01 0x00`. Another example, [Ammonite Shell](http://ammonite.io/) splices a bash shell script before the jar file, looks for Java through the bash shell script and starts itself. `java.util.zip.ZipFile` reads these files correctly, but `org.apache.commons.compress.archivers.zip.ZipFile` recognizes them as empty zip files. This PR fixes this issue and allows users to read content before the zip body. I didn't implement it for zip64 because `java.util.zip.ZipFile` didn't implement it either, and I'm not sure how it should be implemented correctly. (I seem to have missed the release date of commons-compress 1.22. This problem has a wider impact, and I hope to fix it as soon as possible.) Issue Time Tracking ------------------- Worklog Id: (was: 831776) Remaining Estimate: 0h Time Spent: 10m > ZipFile does not support prepending additional data to the zip content > ---------------------------------------------------------------------- > > Key: COMPRESS-621 > URL: https://issues.apache.org/jira/browse/COMPRESS-621 > Project: Commons Compress > Issue Type: Bug > Components: Archivers > Affects Versions: 1.21 > Reporter: Glavo > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > In general, Zip files support placing arbitrary content before their body > without affecting their compliance. > Here is an example: > [https://github.com/huanghongxun/HMCL/releases/download/v3.5.2.218/HMCL-3.5.2.218.exe] > > This is actually a jar file, but we prepend an exe launcher to it, so it can > be used both as a jar and as an exe. > java.util.zip.ZipFile can open and read it normally, but > org.apache.commons.compress.archivers.zip.ZipFile can open it but cannot read > any entries. > -- This message was sent by Atlassian Jira (v8.20.10#820010)