[
https://issues.apache.org/jira/browse/GROOVY-11144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Milles updated GROOVY-11144:
---------------------------------
Fix Version/s: 4.0.22
> MissingPropertyEx when accessing private static field in closure of same class
> ------------------------------------------------------------------------------
>
> Key: GROOVY-11144
> URL: https://issues.apache.org/jira/browse/GROOVY-11144
> Project: Groovy
> Issue Type: Bug
> Components: groovy-runtime
> Affects Versions: 4.0.13
> Environment: Windows 10, Groovy 4.0.13, Java 17.0.8
> Reporter: Andreas Turban
> Assignee: Eric Milles
> Priority: Major
> Fix For: 5.0.0-alpha-1, 4.0.22
>
> Attachments: Test.groovy
>
>
> When accessing a private static final field from a Closure within the same
> class Groovy 4 throws a MissingPropertyException. The code works in Groovy
> 2.5.22 & 3.0.18.
> The real instance of the object needs to be a subtype of the class containing
> the constant.
> See attached code to reproduce.
> *Expected behavior:*
> The code runs without error
> *Actual behavior:*
> Groovy 4 throws:
> {{groovy.lang.MissingPropertyException: No such property: field for class:
> FirstEvent}}
> {{ at BaseEvent$_init_closure1.doCall(Test.groovy:7)}}
> {{ at BaseEvent.init(Test.groovy:7)}}
> {{ at Test.run(Test.groovy:15)}}
> *Notes:*
> Interestingly if you remove the static keyword from {color:#0033b3}private
> static final {color}{color:#000000}String {color}{color:#871094}field
> {color}= {color:#067d17}"name"{color}
> it fails in all three versions 2.5.22, 3.0.18 & 4.0.13 with a
> {{{}MissingPropertyException{}}}.
> I would expect that the code should also work for these cases.
>
> The problem came up in a discussion about a Spock issue
> [#1544|https://github.com/spockframework/spock/issues/1544].
--
This message was sent by Atlassian Jira
(v8.20.10#820010)