Details
Description
It appears that toString() is not being inherited properly in domain object subclasses.
Domain objects:
class A {
String name
String toString() { 'original' }
}
class B extends A { }
Test code:
void test() {
def a = new A(name:'Object A')
def b = new B(name:'Object B')
println a.toString()
println b.toString()
assert a.toString() == 'original'
assert b.toString() == 'original'
}
Test output:
original
B : null
FAILURE
Tests failed: 1 errors, 0 failures
Attachments
Issue Links
| This issue is related to: | ||||
| GRAILS-1641 | Regression: toString() on domain classes is showing "SomeClassName : null" i.e. null instead of id (in log statement) |
|
|
|
I reopened this issue because it occurs again in version 1.2-M2
class Person {
String firstName
String lastName
String toString() { return firstName + " " + lastName.toUpperCase() }
}
class Player extends Person{
}
void testToString() {
mockDomain(Person)
mockDomain(Player)
def person = new Person(firstName: "firstName", lastName: "lastName")
def player = new Player(firstName: "firstName", lastName: "lastName")
assertEquals "firstName LASTNAME", person.toString()
assertEquals "firstName LASTNAME", player.toString()
}
=> last assertion fails !!!