Exception in thread "main" java.util.zip.ZipException: Bad CRC checksum for entry META-INF/MANIFEST.MF · Issue #29 · apache/tomcat-jakartaee-migration · GitHub
Skip to content

Exception in thread "main" java.util.zip.ZipException: Bad CRC checksum for entry META-INF/MANIFEST.MF #29

Closed
@gregorkistler

Description

Hi,

with the release of version 1.0.1 of the Tomcat Migration Tool for Jakarta EE I'm having some issues with a couple of jar files in my project which cannot be migrated due to an exception. Same jar(s) can be migrated using version 1.0.0:

jakartaee-migration-1.0.1-shaded.jar

$ java -jar jakartaee-migration-1.0.1-shaded.jar jna-platform-4.5.1.jar jna-platform-4.5.1.jar.jakarta 
Performing migration from source [/jna-platform-4.5.1.jar] to destination [/jna-platform-4.5.1.jar.jakarta] with Jakarta EE specification profile [TOMCAT]
Migration starting for archive [jna-platform-4.5.1.jar] using streaming
Exception in thread "main" java.util.zip.ZipException: Bad CRC checksum for entry META-INF/MANIFEST.MF: 16b8446c instead of 4535229
	at org.apache.tomcat.jakartaee.commons.compress.archivers.zip.ZipArchiveOutputStream.handleSizesAndCrc(ZipArchiveOutputStream.java:718)
	at org.apache.tomcat.jakartaee.commons.compress.archivers.zip.ZipArchiveOutputStream.closeArchiveEntry(ZipArchiveOutputStream.java:607)
	at org.apache.tomcat.jakartaee.Migration.migrateArchiveStreaming(Migration.java:228)
	at org.apache.tomcat.jakartaee.Migration.migrateStream(Migration.java:285)
	at org.apache.tomcat.jakartaee.Migration.migrateFile(Migration.java:197)
	at org.apache.tomcat.jakartaee.Migration.execute(Migration.java:163)
	at org.apache.tomcat.jakartaee.MigrationCLI.main(MigrationCLI.java:94)
	Suppressed: java.io.IOException: This archive contains unclosed entries.
		at org.apache.tomcat.jakartaee.commons.compress.archivers.zip.ZipArchiveOutputStream.finish(ZipArchiveOutputStream.java:534)
		at org.apache.tomcat.jakartaee.commons.compress.archivers.zip.ZipArchiveOutputStream.close(ZipArchiveOutputStream.java:1090)
		at org.apache.tomcat.jakartaee.Migration.migrateArchiveStreaming(Migration.java:214)
		... 4 more

jakartaee-migration-1.0.0-shaded.jar

$ java -jar jakartaee-migration-1.0.0-shaded.jar jna-platform-4.5.1.jar jna-platform-4.5.1.jar.jakarta 
Performing migration from source [/jna-platform-4.5.1.jar] to destination [/jna-platform-4.5.1.jar.jakarta] with Jakarta EE specification profile [TOMCAT]
Migration starting for archive [jna-platform-4.5.1.jar] using streaming
Migration finished for archive [jna-platform-4.5.1.jar]
Migration completed successfully in [529] milliseconds

Java version: OpenJDK 11 as well as OpenJDK 17
OS version: Ubuntu 22.04 as well as 20.04

Simple reproducer:

  1. fire up a OpenJDK Docker container, e.g. docker run -it --rm openjdk:11 bash
  2. download an affected jar like Java Native Access Platform 4.5.1
  3. download Tomcat Migration Tool for Jakarta EE 1.0.1
  4. try to migrate the jar, e.g. java -jar jakartaee-migration-1.0.1-shaded.jar jna-platform-4.5.1.jar jna-platform-4.5.1.jar.jakarta

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions