[ 
https://issues.apache.org/jira/browse/GROOVY-10707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Milles reassigned GROOVY-10707:
------------------------------------

    Assignee: Eric Milles

> Regression in property access for conflicting isXxx and getXxx accessors
> ------------------------------------------------------------------------
>
>                 Key: GROOVY-10707
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10707
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 4.0.3
>            Reporter: Kyle Moore
>            Assignee: Eric Milles
>            Priority: Major
>
> In upgrading our codebase from Groovy 3.0.11 to 4.0.3, we noticed a 
> regression in method selection when using property access. This toy example 
> illustrates the issue:
> {code:java}
> class Base {
>    boolean isFirstChild() { return true }
> }
> class Sub extends Base {
>    String getFirstChild() { return "hello" }
> }
> class SubSub extends Sub { }
> assert new SubSub().firstChild instanceof String
> {code}
>  
> This code passes in Groovy 3 but fails in Groovy 4. We observed this 
> real-world behavior with {{xerces:xercesImpl:2.12.1}} where an instance of 
> class {{org.apache.xerces.dom.ParentNode}} has both methods 
> {{getFirstChild()}} returning a {{Node}} and {{isFirstChild()}} returning a 
> {{boolean}}.
> As a workaround, we can access {{getFirstChild()}} by name instead of using 
> property access, but in discussions with [~paulk] this behavior change may be 
> unintended.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to