[ https://issues.apache.org/jira/browse/GROOVY-9257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-9257: -------------------------------- Attachment: maven-spring-boot.zip > Could not create Groovysh with JDK 11 and Spring-Boot > ----------------------------------------------------- > > Key: GROOVY-9257 > URL: https://issues.apache.org/jira/browse/GROOVY-9257 > Project: Groovy > Issue Type: Bug > Components: Groovysh > Affects Versions: 2.5.8 > Environment: openjdk version "11.0.1" 2018-10-16 > OpenJDK Runtime Environment 18.9 (build 11.0.1+13) > OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode) > macOS 10.14.4 > Reporter: Oleg > Priority: Major > Attachments: maven-spring-boot.zip > > > Can't create instance of class org.codehaus.groovy.tools.shell.Groovysh from > the application created with SpringBoot (self contained jar) > Exception: > > {code:java} > Exception in thread "main" > java.lang.reflect.InvocationTargetExceptionException in thread "main" > java.lang.reflect.InvocationTargetException at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) at > org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) > at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at > org.springframework.boot.loader.Launcher.launch(Launcher.java:51) at > org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)Caused > by: java.nio.file.NoSuchFileException: > file:/Users/olegkotov/work/ctr/backend/ctr-test/target/gshell-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/groovy-2.5.8.jar > at > java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) > at > java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) > at > java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) > at > java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55) > at > java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:145) > at java.base/java.nio.file.Files.readAttributes(Files.java:1763) at > java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1222) at > java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:726) at > java.base/java.util.zip.ZipFile$CleanableResource.get(ZipFile.java:843) at > java.base/java.util.zip.ZipFile.<init>(ZipFile.java:246) at > java.base/java.util.zip.ZipFile.<init>(ZipFile.java:176) at > java.base/java.util.jar.JarFile.<init>(JarFile.java:346) at > java.base/java.util.jar.JarFile.<init>(JarFile.java:317) at > java.base/java.util.jar.JarFile.<init>(JarFile.java:283) at > org.codehaus.groovy.tools.shell.util.PackageHelperImpl.getPackageNames(PackageHelperImpl.groovy:254) > at > org.codehaus.groovy.tools.shell.util.PackageHelperImpl.getPackages(PackageHelperImpl.groovy:115) > at > org.codehaus.groovy.tools.shell.util.PackageHelperImpl.initializePackages(PackageHelperImpl.groovy:59) > at > org.codehaus.groovy.tools.shell.util.PackageHelperImpl.<init>(PackageHelperImpl.groovy:49) > at > java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) at > java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) > at > org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80) > at > org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:249) > at org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:112) at > org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:101) at > org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:97) at > org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:128) at > org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:132) at > org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:136) at > org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:144) at > com.farpost.test.Main.main(Main.java:25) ... 8 more > {code} > > h3. Code to reproduce error: > > {code:java} > package test; > import org.codehaus.groovy.tools.shell.Groovysh; > import org.springframework.boot.autoconfigure.SpringBootApplication; > import java.io.IOException; > @SpringBootApplication > public class Main { > public static void main(String[] args) throws IOException { > Groovysh groovysh = new Groovysh(); > } > } > > {code} > > h3. The error cause: > PackageHelperImpl.getPackageNames tries to get packages from the jar inside > self-contained application jar by means java.util.zip.ZipFile. Java 8 zip > file API throws FileNotFoundException which was handled in PackageHelperImpl. > The new Java 11 ZipFile API throws NoSuchFileException in case file is not > found on filesystem. That exception is not handled in code. > > -- This message was sent by Atlassian Jira (v8.3.4#803005)