Liquibase 4 unable to work with changelog files that have UTF8 characters in their name?

I have a a db.changelog-master.xml file that uses the which worked great under Liquibase 3.x. Today I upgraded to 4.4.3 and found the most terrifying problem:

Unexpected error running Liquibase: Error Reading Changelog File: Found 2 files that match … and it lists both files – BUT they are the same single file, the first one has a UTF8 character in it and the second has the exploded character codes for that character. For example the first file might have ‘3-ÇM’ while the other would have ‘3-%d0%a1M’ as the same part of the name.

Since the OS seems to return a file to Liquibase either way it is asked for Liquibase gets what it thinks are 2 different files - but are in fact the same file (and has duplicate information).

Is there a way to resolve this short of renaming all of my changelog files?

Hi @frankflynn , We are trying to reproduce this issue on our end.
Can you provide the sample changeset which contains the ‘3-ÇM’ string in it?

Hi @aditi - yes of course there were several and they were all “normal” changesets (nothing exotic at all). In fact they had already been run successfully unter some version 3 but I then upgraded my Liquibase client to the latest v4 and that’s when it broke. It breaks during the compare the files to the DATABASECHANGELOG phase.

I believe you could just change the name of any existing change set to include a non ASCII character (you must be using a file system that will support that - I was using Mac OS).

But I will put this together for you