[ 
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)

Reply via email to