boot-clj / boot-clj/boot

Boot-generated uberjar zip file has corrupted content on Java 13

Open
#752 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Clojure
Stars
1.7k
Forks
178
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
The JAR file produced by `boot build` when used in the default way produces a zip containing a corrupt metadata file (`META-INF/MANIFEST.MF`)

**To Reproduce**
Steps to reproduce the behavior:
1. Create a new boot project
```
boot -d boot/new new -t app -n myapp
cd myapp
boot run
```

2. Run `boot build` to generate a jar

3. Use `unzip` command to unzip the jar
`unzip target/myapp-0.1.0-SNAPSHOT-standalone.jar`

**Expected behavior**
The jar file should `unzip` without error.

**Actual**
The JAR fails to unzip on this file:
```
inflating: META-INF/MANIFEST.MF bad CRC bd07333f (should be 5fbe64cb)
```

**Desktop (please complete the following information):**
- OS: Mac OS X 10.14.6
- BOOT_VERSION=2.8.3
- BOOT_CLOJURE_VERSION=1.10.1
- BOOT_CLOJURE_NAME=org.clojure/clojure
- JDK 13 build 33 (2019/8/9)

**Additional context**
- The JAR does run without issue using `java -jar target/my-app.jar`
- Ran into this issue when deploying an app to Elastic Beanstalk, which unzips the jar using the `unzip` command
- Reproduced the issue locally with my own app, and then with a brand new app using the instructions above.
- After downgrading to JDK 1.8, it works.
- Have not tested the JDK versions in between 13 and 1.8 (11, 12)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.