You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Leonard Brünings (Jira)" <ji...@apache.org> on 2020/08/18 15:24:00 UTC

[jira] [Created] (GROOVY-9695) Regression for accessing private static constants in closures from Parent Classes

Leonard Brünings created GROOVY-9695:
----------------------------------------

             Summary: Regression for accessing private static constants in closures from Parent Classes
                 Key: GROOVY-9695
                 URL: https://issues.apache.org/jira/browse/GROOVY-9695
             Project: Groovy
          Issue Type: Bug
            Reporter: Leonard Brünings
             Fix For: 2.5.13


The following code worked in 2.5.12, in 2.5.13 {{testChildClass}} fails with {{groovy.lang.MissingPropertyException: No such property: PATTERNS for class: Child}}

[~emilles] probably related to the changes mentioned here GROOVY-9665
{code:groovy}
class Example {

    @Test
    void testBaseClass() {
        new Base().check("FooSpec")
    }

    @Test
    void testChildClass() {
        new Child().check("FooSpec")
    }

}

class Base {
    private static final List<Pattern> PATTERNS = [~/.*Test/, ~/.*Spec/]

    def check(String str) {
        List failures = []

        def result = PATTERNS.findResult { Pattern pattern ->
            if (pattern.matcher(str).matches()) {
                return str
            } else {
                failures.add("Pattern ${PATTERNS.indexOf(pattern)} did not match")
            }
        }
        if (!result) {
            throw new IllegalArgumentException("Did Match no pattern: "+failures.join(", "))
        }

        return result
    }
}

class Child extends Base {

}
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)