[ https://issues.apache.org/jira/browse/GROOVY-8938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anton Pryamostanov updated GROOVY-8938: --------------------------------------- Priority: Critical (was: Major) > Final field caching issues in inherited field. > ---------------------------------------------- > > Key: GROOVY-8938 > URL: https://issues.apache.org/jira/browse/GROOVY-8938 > Project: Groovy > Issue Type: Bug > Components: groovy-runtime > Affects Versions: 2.5.4 > Reporter: Anton Pryamostanov > Priority: Critical > > Note: **this seems to be a quite major issue**, kindly look at this one with > emphasis. > Please see the below test case: > SubClass extends the SuperClass and overrides the field "inheritedField". > {code} > class OtherClass { > String otherField > OtherClass(String otherField) { > this.otherField = otherField > } > String toString() { > return otherField > } > } > class SuperClass { > final OtherClass inheritedField = new OtherClass("Super Class String") > } > class SubClass extends SuperClass { > final OtherClass inheritedField = new OtherClass("Sub Class String") > } > SuperClass superClass = new SuperClass() > SubClass subClass = new SubClass() > assert subClass.inheritedField.toString() == "Sub Class String" > {code} > Actual result: assertion fails > Expected result: assertion should pass > Note: If "final" modifier is removed, assertion passes as expected. > This seems an issue with final field caching. -- This message was sent by Atlassian JIRA (v7.6.3#76005)