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:

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

Environment

Windows 7 (64Bit)

Activity

Show:

Nathan Voxland June 19, 2015 at 9:11 PM

Thanks, I incorporated your code

Fixed

Details

Reporter

Components

Fix versions

Affects versions

Priority

Created February 24, 2015 at 1:37 PM
Updated June 19, 2015 at 9:11 PM
Resolved June 19, 2015 at 9:11 PM