[jira] [Resolved] (GROOVY-8880) Traits - static/instance init blocks
[ https://issues.apache.org/jira/browse/GROOVY-8880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Anton Pryamostanov resolved GROOVY-8880. Resolution: Fixed Retested OK 3.0.0.SNAPSHOT I had to checkout and build on different machine. Need to investigate more what happens on machine where there is cache problem. That was IDE/environment issue probably. Thank you! > Traits - static/instance init blocks > > > Key: GROOVY-8880 > URL: https://issues.apache.org/jira/browse/GROOVY-8880 > Project: Groovy > Issue Type: Improvement > Components: Compiler, groovy-runtime >Affects Versions: 2.5.2 >Reporter: Anton Pryamostanov >Assignee: Paul King >Priority: Major > Fix For: 3.0.0-alpha-4, 2.5.5 > > > Let's consider the below examples of Traits with Init blocks: > *Instance init block:* > {code} > trait InstanceTrait { > { > System.out.println("Instance init") > } > } > class InstanceTraitClass implements InstanceTrait { > } > new InstanceTraitClass() > {code} > This gives the below compilation exception: > {code:java} > General error during class generation: NPE while processing > script1542098577743.groovy > groovy.lang.GroovyRuntimeException: NPE while processing > script1542098577743.groovy > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:2 > at > org.codehaus.groovy.control.CompilationUnit$17.call(CompilationUnit.java:8 > at > org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:10 > at > org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:6 > at > org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:5 > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:5 > at org.codehaus.groovy.control.CompilationUnit$compile$1.call(Unknown Sour > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:1 > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:1 > at > groovy.inspect.swingui.AstNodeToScriptAdapter.compileToScript(AstNodeToScriptAdapter.groovy: > at > groovy.inspect.swingui.AstNodeToScriptAdapter$compileToScript.call(Unknown > Sour > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:1 > at > groovy.inspect.swingui.AstBrowser$_decompile_closure6.doCall(AstBrowser.groovy:3 > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Meth > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: > at java.lang.reflect.Method.invoke(Method.java:4 > at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:3 > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:2 > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:10 > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:10 > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:10 > at groovy.lang.Closure.call(Closure.java:4 > at groovy.lang.Closure.call(Closure.java:4 > at groovy.lang.Closure.run(Closure.java:4 > at java.lang.Thread.run(Thread.java:7 > Caused by: java.lang.NullPointerException > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.prepareCallSite(CallSiteWriter.java:2 > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.prepareSiteAndReceiver(CallSiteWriter.java:2 > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.prepareSiteAndReceiver(CallSiteWriter.java:2 > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:2 > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:3 > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:3 > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:1 > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java: > at > org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:4 > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:7 > at > org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java: > at > org.code
[jira] [Resolved] (GROOVY-8880) Traits - static/instance init blocks
[ https://issues.apache.org/jira/browse/GROOVY-8880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Paul King resolved GROOVY-8880. --- Resolution: Fixed Assignee: Paul King Fix Version/s: 2.5.5 3.0.0-alpha-4 Should be fixed. If you can test a snapshot version, that would be great. Thanks for reporting the issue. > Traits - static/instance init blocks > > > Key: GROOVY-8880 > URL: https://issues.apache.org/jira/browse/GROOVY-8880 > Project: Groovy > Issue Type: Improvement > Components: Compiler, groovy-runtime >Affects Versions: 2.5.2 >Reporter: Anton Pryamostanov >Assignee: Paul King >Priority: Major > Fix For: 3.0.0-alpha-4, 2.5.5 > > > Let's consider the below examples of Traits with Init blocks: > *Instance init block:* > {code} > trait InstanceTrait { > { > System.out.println("Instance init") > } > } > class InstanceTraitClass implements InstanceTrait { > } > new InstanceTraitClass() > {code} > This gives the below compilation exception: > {code:java} > General error during class generation: NPE while processing > script1542098577743.groovy > groovy.lang.GroovyRuntimeException: NPE while processing > script1542098577743.groovy > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:2 > at > org.codehaus.groovy.control.CompilationUnit$17.call(CompilationUnit.java:8 > at > org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:10 > at > org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:6 > at > org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:5 > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:5 > at org.codehaus.groovy.control.CompilationUnit$compile$1.call(Unknown Sour > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:1 > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:1 > at > groovy.inspect.swingui.AstNodeToScriptAdapter.compileToScript(AstNodeToScriptAdapter.groovy: > at > groovy.inspect.swingui.AstNodeToScriptAdapter$compileToScript.call(Unknown > Sour > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:1 > at > groovy.inspect.swingui.AstBrowser$_decompile_closure6.doCall(AstBrowser.groovy:3 > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Meth > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: > at java.lang.reflect.Method.invoke(Method.java:4 > at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:3 > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:2 > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:10 > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:10 > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:10 > at groovy.lang.Closure.call(Closure.java:4 > at groovy.lang.Closure.call(Closure.java:4 > at groovy.lang.Closure.run(Closure.java:4 > at java.lang.Thread.run(Thread.java:7 > Caused by: java.lang.NullPointerException > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.prepareCallSite(CallSiteWriter.java:2 > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.prepareSiteAndReceiver(CallSiteWriter.java:2 > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.prepareSiteAndReceiver(CallSiteWriter.java:2 > at > org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:2 > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:3 > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:3 > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:1 > at > org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java: > at > org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:4 > at > org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:7 > at > org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java: > at > org.codehaus.groovy.classgen.asm.Statemen