ebourg commented on issue #46:
URL:
https://github.com/apache/tomcat-jakartaee-migration/issues/46#issuecomment-1513807408
Digging further... my initial intuition of removing the ZIP64 extra field
does really work, I just didn't implement it correctly (I added it only to the
STORED branch of `migrateArchiveStreaming`, DEFLATED entries still had the
field).
Since the Ant jar task disables ZIP64 fields by default I think
`migrateArchiveStreaming` should scrap it (for jar files only). It could check
the size of the entry, but a 4GB entry in a jar file seems so unrealistic I'd
not bother handling that case.
Side note: Commons Compress is fine, but throws an exception with a
misleading message when `zip64mode` is set to `never`:
Exception in thread "main"
org.apache.commons.compress.archivers.zip.Zip64RequiredException: Archive's
size exceeds the limit of 4GByte.
at
org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createCentralFileHeader(ZipArchiveOutputStream.java:766)
at
org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeCentralDirectoryInChunks(ZipArchiveOutputStream.java:1792)
at
org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish(ZipArchiveOutputStream.java:1031)
at
org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close(ZipArchiveOutputStream.java:633)
This error may appear simply because the entry has a ZIP64 extra field, even
when no size limit is exceeded.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]