}
private static void fixZipFile$getInputStream() {
+ final Field ZipEntry$compressedSize = scanField(ZipEntry.class, "compressedSize");
+ if (ZipEntry$compressedSize == null)
+ return;
+ ZipEntry$compressedSize.setAccessible(true);
+
+ final Field ZipEntry$compressionMethod = scanField(ZipEntry.class, "compressionMethod");
+ if (ZipEntry$compressionMethod == null)
+ return;
+ ZipEntry$compressionMethod.setAccessible(true);
+
+ final Field ZipEntry$size = scanField(ZipEntry.class, "size");
+ if (ZipEntry$size == null)
+ return;
+ ZipEntry$size.setAccessible(true);
+
final Field ZipEntry$nameLen = scanField(ZipEntry.class, "nameLen", "nameLength");
if (ZipEntry$nameLen == null)
return;
throw new ZipException("bug #9695860 [" + thiz.getName() + "]");
}
+ if (ZipEntry$compressionMethod.getInt(entry) == ZipEntry.STORED)
+ if (ZipEntry$compressedSize.getLong(entry) != ZipEntry$size.getLong(entry))
+ throw new ZipException("bug #10227498 [" + thiz.getName() + "]");
+
return invoke(thiz, args);
}
}