[
https://issues.apache.org/jira/browse/GROOVY-10515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17498594#comment-17498594
]
David Brown commented on GROOVY-10515:
--------------------------------------
Thank you Paul for the prompt response. To clarify, does this then mean that
prior to Groovy 2.5, unless the fields were specified in parent classes, then
they would have simply been ignored and not part of the equals/hash
calculation? For example in my code above, imagine the annotation for Level0
did NOT feature level0field in its includes attribute.
> EqualsAndHashCode no longer access parent class
> -----------------------------------------------
>
> Key: GROOVY-10515
> URL: https://issues.apache.org/jira/browse/GROOVY-10515
> Project: Groovy
> Issue Type: Bug
> Reporter: David Brown
> Priority: Minor
>
> It appears there is a breaking change between Groovy 2.4 and 2.5 to the
> EqualsAndHashCode() method. In 2.4, the includes attribute could reference
> properties of parent classes up the inheritance tree, however, in 2.5 an
> exception is thrown indicating the inherited field(s) do not exist.
> The following code demonstrates a simple inheritance relationship with
> reproducible exception that works correctly with Groovy 2.4.x
> {code:java}
> import groovy.transform.EqualsAndHashCode
> @EqualsAndHashCode(includes = ['level0field'], includeFields = true)
> abstract class Level0 {
> public String level0field
> }
> @EqualsAndHashCode(includes = ['level0field', 'level1field'], callSuper =
> true, includeFields = true)
> class Level1 extends Level0 {
> String level1field
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)