XMLChangeLogSerializer writes array object for rollback tag content
Description
When using the XMLChangeLogSerializer to write ChangeSets into a changelog XML file, the rollback tags will be filled with an Object's toString value: <rollback>[Lliquibase.change.Change;@373ac0</rollback>
The cause seems to lie with the ChangeSets getRollbackChanges method, which returns an array instead of a list (as getChanges() does) :
The XMLChangeLogSerializer then fails on setValueOnNode(..) to correctly interpret this array of rollback changes (neither Collection nor Map), and runs into this line:
When using the XMLChangeLogSerializer to write ChangeSets into a changelog XML file, the rollback tags will be filled with an Object's toString value:
<rollback>[Lliquibase.change.Change;@373ac0</rollback>
The cause seems to lie with the ChangeSets getRollbackChanges method, which returns an array instead of a list (as getChanges() does) :
The XMLChangeLogSerializer then fails on setValueOnNode(..) to correctly interpret this array of rollback changes (neither Collection nor Map), and runs into this line:
A while ago I created this forum entry concerning this same issue:
http://forum.liquibase.org/topic/creating-rollback-statement-for-changeset-leads-to-general-object-value-printed-using-xml-format