Open
Description
If you unpack an uber jar and then run the extract
command from jar mode tools, it fails:
$ java -Djarmode=tools org.springframework.boot.loader.launch.JarLauncher extract
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64)
at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40)
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: Manifest attribute 'Spring-Boot-Classpath-Index' is mandatory
at org.springframework.boot.jarmode.tools.ToolsJarMode.run(ToolsJarMode.java:56)
at org.springframework.boot.loader.launch.JarModeRunner.main(JarModeRunner.java:43)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
... 4 more
Caused by: java.lang.IllegalStateException: Manifest attribute 'Spring-Boot-Classpath-Index' is mandatory
at org.springframework.util.Assert.state(Assert.java:79)
at org.springframework.boot.jarmode.tools.IndexedJarStructure.getMandatoryAttribute(IndexedJarStructure.java:137)
at org.springframework.boot.jarmode.tools.IndexedJarStructure.get(IndexedJarStructure.java:145)
at org.springframework.boot.jarmode.tools.ExtractCommand.getJarStructure(ExtractCommand.java:214)
at org.springframework.boot.jarmode.tools.ExtractCommand.run(ExtractCommand.java:113)
at org.springframework.boot.jarmode.tools.Command.run(Command.java:112)
at org.springframework.boot.jarmode.tools.Runner.runCommand(Runner.java:68)
at org.springframework.boot.jarmode.tools.Runner.run(Runner.java:55)
at org.springframework.boot.jarmode.tools.Runner.run(Runner.java:47)
at org.springframework.boot.jarmode.tools.ToolsJarMode.run(ToolsJarMode.java:53)
... 6 more
It would be beneficial for buildpacks if this worked as it would mean that they don't have to zip things back up again.
/cc @anthonydahanne