I came across an apparent bug in java.util.zip.ZipInputStream
where reading a certain type of zip file causes an exception:
java.util.zip.ZipException: invalid entry size (expected 0 but got 199 bytes)
at java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:384)
at java.util.zip.ZipInputStream.read(ZipInputStream.java:196)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:122)
The file in question reads fine using archiving utilities and Java’s ZipFile
, so the issue is likely rooted in ZipInputStream
. My application requires reading the zip file sequentially, so ZipInputStream
is my only option besides a third-party library. I decided to search for a solution using vanilla Java rather than pulling in a new dependency.