Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-9392

GroovyClassLoader as system class loader fails in Groovy 3

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0.0
    • 4.0.0-alpha-1, 3.0.1
    • None
    • None

    Description

      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).

      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)
      

      Attachments

        Issue Links

          Activity

            People

              emilles Eric Milles
              emilles Eric Milles
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h