I have seen various stack traces as I've tested it in various places.
Firstly, in some instances it complains that the constructor A$1(java.lang.Class) cannot be accessed, which makes me suspect inner class issues (e.g. GROOVY-5109) may be related.
public static transient boolean ignored.alex.failingcallsite.B.__$stMC
false
public static final ignored.alex.failingcallsite.X ignored.alex.failingcallsite.A.x
Exception in thread "main" java.lang.ExceptionInInitializerError
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
at java.lang.reflect.Field.get(Field.java:358)
at java_lang_reflect_Field$get.call(Unknown Source)
at ignored.alex.failingcallsite.B.<init>(FailingCallSiteLocalClass.groovy:25)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:186)
at ignored.alex.failingcallsite.FailingCallSiteLocalClass.main(FailingCallSiteLocalClass.groovy:7)
Caused by: groovy.lang.GroovyRuntimeException: Could not find matching constructor for: ignored.alex.failingcallsite.A$1(java.lang.Class)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1473)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1389)
at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:46)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
at ignored.alex.failingcallsite.A.<clinit>(FailingCallSiteLocalClass.groovy:12)
... 18 more
Running from the command-line shows the smaller trace:
bugs% ../groovy-2.0.0-beta-1/bin/groovy -e 'ignored.alex.failingcallsite.FailingCallSiteLocalClass.main()'
public static transient boolean ignored.alex.failingcallsite.B.__$stMC
false
public static long ignored.alex.failingcallsite.B.__timeStamp
1321276852344
public static long ignored.alex.failingcallsite.B.__timeStamp__239_neverHappen1321276852344
0
public static final ignored.alex.failingcallsite.X ignored.alex.failingcallsite.A.x
Caught: java.lang.IllegalAccessError: tried to access field ignored.alex.failingcallsite.A$1.$class$ignored$alex$failingcallsite$A from class ignored.alex.failingcallsite.A
java.lang.IllegalAccessError: tried to access field ignored.alex.failingcallsite.A$1.$class$ignored$alex$failingcallsite$A from class ignored.alex.failingcallsite.A
at ignored.alex.failingcallsite.A.<clinit>(FailingCallSiteLocalClass.groovy:12)
at java_lang_reflect_Field$get.call(Unknown Source)
at ignored.alex.failingcallsite.B.<init>(FailingCallSiteLocalClass.groovy:25)
at ignored.alex.failingcallsite.FailingCallSiteLocalClass.main(FailingCallSiteLocalClass.groovy:7)
Finally, it might be useful to note that although this test case fails on all versions tested (1.7.2 through 1.8.4, and 2.0.0-beta1), it was extracted from a more complicated scenario which only started failing in 1.8.2 – was working for many months against 1.8.0-03.
I have seen various stack traces as I've tested it in various places.
Firstly, in some instances it complains that the constructor A$1(java.lang.Class) cannot be accessed, which makes me suspect inner class issues (e.g.
GROOVY-5109) may be related.Running from the command-line shows the smaller trace:
Finally, it might be useful to note that although this test case fails on all versions tested (1.7.2 through 1.8.4, and 2.0.0-beta1), it was extracted from a more complicated scenario which only started failing in 1.8.2 – was working for many months against 1.8.0-03.