You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Andreas Turban (Jira)" <ji...@apache.org> on 2023/08/01 06:43:00 UTC
[jira] [Created] (GROOVY-11144) MissingPropertyEx when accessing private static field in closure of same class
Andreas Turban created GROOVY-11144:
---------------------------------------
Summary: 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
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 bahavior:*
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)