}
 
     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);
                 }
             }