Eric Milles created GROOVY-9392:
-----------------------------------
Summary: GroovyClassLoader as system class loader fails in Groovy 3
Key: GROOVY-9392
URL: https://issues.apache.org/jira/browse/GROOVY-9392
Project: Groovy
Issue Type: Bug
Affects Versions: 3.0.0
Reporter: Eric Milles
Assignee: Eric Milles
Running a JVM with {{-Djava.system.class.loader=groovy.lang.GroovyClassLoader}}
causes the following exception since Groovy 3.0.0 (not an issue in Groovy
3.0rc3 and prior).
{code}
java.lang.BootstrapMethodError: java.lang.ExceptionInInitializerError
at
org.codehaus.groovy.control.CompilerConfiguration.<init>(CompilerConfiguration.java:429)
at
org.codehaus.groovy.control.CompilerConfiguration$1.<init>(CompilerConfiguration.java:135)
at
org.codehaus.groovy.control.CompilerConfiguration.<clinit>(CompilerConfiguration.java:135)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:159)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:183)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:139)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2204)
at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2188)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1449)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1429)
Caused by: java.lang.ExceptionInInitializerError
at
java.lang.invoke.BoundMethodHandle.<clinit>(BoundMethodHandle.java:830)
at java.lang.invoke.LambdaForm.createIdentityForms(LambdaForm.java:1778)
at java.lang.invoke.LambdaForm.<clinit>(LambdaForm.java:1833)
at
java.lang.invoke.DirectMethodHandle.makePreparedLambdaForm(DirectMethodHandle.java:231)
at
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:194)
at
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:183)
at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:89)
at
java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:1660)
at
java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:1617)
at
java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant(MethodHandles.java:1802)
at
java.lang.invoke.MethodHandles$Lookup.linkMethodHandleConstant(MethodHandles.java:1751)
at
java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:477)
at
org.codehaus.groovy.control.CompilerConfiguration.<init>(CompilerConfiguration.java:429)
at
org.codehaus.groovy.control.CompilerConfiguration$1.<init>(CompilerConfiguration.java:135)
at
org.codehaus.groovy.control.CompilerConfiguration.<clinit>(CompilerConfiguration.java:135)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:159)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:183)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:139)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2204)
at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2188)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1449)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1429)
Caused by: java.lang.IllegalStateException: recursive invocation
at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1443)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1429)
at
sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:47)
at
sun.invoke.util.BytecodeDescriptor.parseMethod(BytecodeDescriptor.java:41)
at
java.lang.invoke.MethodType.fromMethodDescriptorString(MethodType.java:1067)
at
java.lang.invoke.BoundMethodHandle$Factory.makeCbmhCtor(BoundMethodHandle.java:818)
at
java.lang.invoke.BoundMethodHandle$Factory.makeCtors(BoundMethodHandle.java:763)
at
java.lang.invoke.BoundMethodHandle$SpeciesData.initForBootstrap(BoundMethodHandle.java:361)
at
java.lang.invoke.BoundMethodHandle$SpeciesData.<clinit>(BoundMethodHandle.java:426)
at
java.lang.invoke.BoundMethodHandle.<clinit>(BoundMethodHandle.java:830)
at java.lang.invoke.LambdaForm.createIdentityForms(LambdaForm.java:1778)
at java.lang.invoke.LambdaForm.<clinit>(LambdaForm.java:1833)
at
java.lang.invoke.DirectMethodHandle.makePreparedLambdaForm(DirectMethodHandle.java:231)
at
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:194)
at
java.lang.invoke.DirectMethodHandle.preparedLambdaForm(DirectMethodHandle.java:183)
at java.lang.invoke.DirectMethodHandle.make(DirectMethodHandle.java:89)
at
java.lang.invoke.MethodHandles$Lookup.getDirectMethodCommon(MethodHandles.java:1660)
at
java.lang.invoke.MethodHandles$Lookup.getDirectMethodNoSecurityManager(MethodHandles.java:1617)
at
java.lang.invoke.MethodHandles$Lookup.getDirectMethodForConstant(MethodHandles.java:1802)
at
java.lang.invoke.MethodHandles$Lookup.linkMethodHandleConstant(MethodHandles.java:1751)
at
java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:477)
at
org.codehaus.groovy.control.CompilerConfiguration.<init>(CompilerConfiguration.java:429)
at
org.codehaus.groovy.control.CompilerConfiguration$1.<init>(CompilerConfiguration.java:135)
at
org.codehaus.groovy.control.CompilerConfiguration.<clinit>(CompilerConfiguration.java:135)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:159)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:183)
at groovy.lang.GroovyClassLoader.<init>(GroovyClassLoader.java:139)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2204)
at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2188)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1449)
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1429)
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)