[ https://issues.apache.org/jira/browse/GROOVY-6996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King closed GROOVY-6996. ----------------------------- > Anonymous class field initialized with an enclosing argument results in > MissingPropertyException > ------------------------------------------------------------------------------------------------ > > Key: GROOVY-6996 > URL: https://issues.apache.org/jira/browse/GROOVY-6996 > Project: Groovy > Issue Type: Bug > Affects Versions: 2.3.3, 2.3.4, 2.3.5, 2.3.6, 2.4.1 > Environment: Oracle JDK 1.7.0_60 @ Mavericks > Reporter: Bastian Helfert > Assignee: Eric Milles > Priority: Minor > Fix For: 2.5.9, 3.0.0-rc-1 > > Attachments: MissingPropertyExceptionBug.groovy > > Time Spent: 40m > Remaining Estimate: 0h > > Since Groovy 2.3.3 initializing a field of an anonymous class with an > enclosing argument results in a MissingPropertyException: > Code: > {code} > class MissingPropertyExceptionBug { > interface SomeType { > } > static main(args) { > new SomeType() { > def arguments = args > } > } > } > {code} > ...results in: > {code} > Exception in thread "main" groovy.lang.MissingPropertyException: No such > property: args for class: MissingPropertyExceptionBug > at > groovy.lang.MetaClassImpl.invokeStaticMissingProperty(MetaClassImpl.java:996) > at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1851) > at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1827) > at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3690) > at > org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:171) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:452) > at > MissingPropertyExceptionBug$1.propertyMissing(MissingPropertyExceptionBug.groovy) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) > at > groovy.lang.MetaClassImpl.invokeMissingProperty(MetaClassImpl.java:874) > at groovy.lang.MetaClassImpl$12.getProperty(MetaClassImpl.java:2018) > at > org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite.getProperty(GetEffectivePogoPropertySite.java:82) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231) > at > MissingPropertyExceptionBug$1.<init>(MissingPropertyExceptionBug.groovy) > at > MissingPropertyExceptionBug.main(MissingPropertyExceptionBug.groovy:7) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) > {code} > Workaround: > Use a top-level class instead. -- This message was sent by Atlassian Jira (v8.3.4#803005)