ExecuteCommand won't run with no os attribute.

Description

I have the following changeSet:

1 2 3 4 5 <changeSet id="415_range_fix_exe" author="mhaefele"> <executeCommand executable="C:\tools\patches\RangeFix.exe"> <arg value="--update"/> </executeCommand> </changeSet>

When running this, I get
"Not executing on os Windows 7 when [] was specified" and the changeSet is marked as ran successfully.

The documentation doesn't mention the os attribute (http://www.liquibase.org/documentation/changes/execute_command.html
), but I'm assuming expected is something like
if no os is specified, run always.

In the code, an os= string of "" is converted to an 1 element list containing "" here:

ExecuteShellCommandChange.java, customLoadLogic()

1 List<String> os = StringUtils.splitAndTrim(StringUtils.trimToEmpty(parsedNode.getChildValue(null, "os", String.class)), ",");

trimToEmpty() converts null to "" and then splitAndTrim converts "" to a single item list.

The one element list is then compared to the OS name later.

Environment

Windows 7

Status

Assignee

Unassigned

Reporter

Michael Haefele

Labels

None

Fix versions

Affects versions

3.3.0

Priority

Major