[
https://issues.apache.org/jira/browse/GROOVY-9665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17167284#comment-17167284
]
Eric Milles commented on GROOVY-9665:
-------------------------------------
I am not familiar with rehydrate; thanks for mentioning it (I'll need to
investigate). Since there is no instance of your test class when the
{{@IgnoreIf}} closures are evaluated, one option would be to set owner to your
spec class (aka an instance of Class). This should provide resolution of
static properties and methods -- I'm pretty sure that is what is done for
closures appearing in static methods and static initializers.
This should give you an idea how Groovy handles static closures:
{code:groovy}
class C {
static {
{ ->
println getOwner()
println getThisObject()
}()
}
}
new C()
{code}
> Regression in 3.0.5 for accessing static constants in closures
> --------------------------------------------------------------
>
> Key: GROOVY-9665
> URL: https://issues.apache.org/jira/browse/GROOVY-9665
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 3.0.5
> Reporter: Björn Kautler
> Assignee: Eric Milles
> Priority: Major
> Attachments: image-2020-07-28-00-00-37-055.png
>
>
> Up to 3.0.4 (including 2.x) it worked perfectly fine.
> Starting with 3.0.5 it does not work anymore.
> !image-2020-07-28-00-00-37-055.png!
> This is one of the classes where this is happening:
> [https://github.com/Vampire/spock/blob/issue-1177/spock-specs/mock-integration/src/test/groovy/MockingIntegrationSpec.groovy]
> It works fine if I use Groovy 3.0.4 and it fails with a
> {{MissingPropertyException}} as soon as I switcht to 3.0.5.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)