Oleg created GROOVY-9257:
----------------------------

             Summary: 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


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)

Reply via email to