-
Notifications
You must be signed in to change notification settings - Fork 41.4k
Closed
Labels
type: regressionA regression from a previous releaseA regression from a previous release
Milestone
Description
I have an issue when updating to SB 3.2 and trying to use the new Jar launcher.
I changed my JarLauncher reference address from
org.springframework.boot.loader.JarLauncher
to org.springframework.boot.loader.launch.JarLauncher
after SB 3.2 upgrade, as per instructions, and started getting this error when trying build an image from my dockerfile.
I am suspicious that the reasoning here is my large jar size (~2.6GB), because other services that I've upgraded have not faced this issue.
The error happens on the RUN java ...
command
=> ERROR [builder 3/3] RUN java -Djarmode=layertools -jar service.jar extract 0.3s
------
> [builder 3/3] RUN java -Djarmode=layertools -jar service.jar extract:
0.311 Exception in thread "main" java.lang.reflect.InvocationTargetException
0.313 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
0.313 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
0.313 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
0.313 at java.base/java.lang.reflect.Method.invoke(Method.java:569)
0.313 at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91)
0.314 at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53)
0.314 at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58)
0.314 Caused by: java.lang.AssertionError: Package org.springframework.util has already been defined but it could not be found
0.314 at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.tolerateRaceConditionDueToBeingParallelCapable(JarUrlClassLoader.java:165)
0.315 at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.definePackageIfNecessary(JarUrlClassLoader.java:128)
0.315 at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:98)
0.315 at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91)
0.315 at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
0.315 at org.springframework.boot.loader.launch.JarModeRunner.main(JarModeRunner.java:40)
0.315 ... 7 more
0.315 Caused by: java.lang.IllegalArgumentException: Size must not be negative and must be within bounds
0.315 at org.springframework.boot.loader.zip.FileDataBlock.slice(FileDataBlock.java:147)
0.315 at org.springframework.boot.loader.zip.FileDataBlock.slice(FileDataBlock.java:128)
0.315 at org.springframework.boot.loader.zip.ZipContent$Loader.loadContent(ZipContent.java:592)
0.315 at org.springframework.boot.loader.zip.ZipContent$Loader.openAndLoad(ZipContent.java:578)
0.316 at org.springframework.boot.loader.zip.ZipContent$Loader.loadNonNested(ZipContent.java:563)
0.316 at org.springframework.boot.loader.zip.ZipContent$Loader.load(ZipContent.java:549)
0.316 at org.springframework.boot.loader.zip.ZipContent.open(ZipContent.java:384)
0.316 at org.springframework.boot.loader.zip.ZipContent.open(ZipContent.java:361)
0.316 at org.springframework.boot.loader.zip.ZipContent$Loader.load(ZipContent.java:551)
0.316 at org.springframework.boot.loader.zip.ZipContent.open(ZipContent.java:384)
0.316 at org.springframework.boot.loader.zip.ZipContent.open(ZipContent.java:373)
0.316 at org.springframework.boot.loader.jar.NestedJarFileResources.<init>(NestedJarFileResources.java:60)
0.316 at org.springframework.boot.loader.jar.NestedJarFile.<init>(NestedJarFile.java:147)
0.316 at org.springframework.boot.loader.jar.NestedJarFile.<init>(NestedJarFile.java:124)
0.316 at org.springframework.boot.loader.net.protocol.jar.UrlNestedJarFile.<init>(UrlNestedJarFile.java:42)
0.317 at org.springframework.boot.loader.net.protocol.jar.UrlJarFileFactory.createJarFileForNested(UrlJarFileFactory.java:86)
0.317 at org.springframework.boot.loader.net.protocol.jar.UrlJarFileFactory.createJarFile(UrlJarFileFactory.java:55)
0.317 at org.springframework.boot.loader.net.protocol.jar.UrlJarFiles.getOrCreate(UrlJarFiles.java:72)
0.317 at org.springframework.boot.loader.net.protocol.jar.JarUrlConnection.connect(JarUrlConnection.java:289)
0.317 at org.springframework.boot.loader.net.protocol.jar.JarUrlConnection.getJarFile(JarUrlConnection.java:99)
0.317 at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.getJarFile(JarUrlClassLoader.java:184)
0.317 at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.definePackage(JarUrlClassLoader.java:142)
0.317 at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.definePackageIfNecessary(JarUrlClassLoader.java:125)
0.317 ... 11 more
When switching back to the CLASSIC launcher, like this:
bootJar {
loaderImplementation = org.springframework.boot.loader.tools.LoaderImplementation.CLASSIC
...
It started working again, so the jar itself is not corrupt from what I've observed.
Metadata
Metadata
Assignees
Labels
type: regressionA regression from a previous releaseA regression from a previous release