Error Reading Changelog File: Found 2 files that match

We have changelog files that have file names with german letters.
Before we use liquibase version 3.10.2, there is no problem.
But after we update the verstion to 4.3.5 or 4.7.1, there is alwasy this error.
And I tried using fileEncoding or outputEncoding in liquibase.properties to use UTF-8. But it doesn’t help.
Any ideas to solve this problem?

[2022-03-10 13:09:50] SEVERE [liquibase.integration] Error Reading Changelog File: Found 2 files that match migration/i18n/20.1.0/AR-9349-INFO-Spalte-überlappt-sich-Visuel-mit-der-Icons-in-der-Tabelle.xml: file:/home/liquibase/migration/i18n/20.1.0/AR-9349-INFO-Spalte-überlappt-sich-Visuel-mit-der-Icons-in-der-Tabelle.xml, file:/home/liquibase/migration/i18n/20.1.0/AR-9349-INFO-Spalte-%c3%bcberlappt-sich-Visuel-mit-der-Icons-in-der-Tabelle.xml
liquibase.exception.CommandExecutionException: liquibase.exception.LiquibaseException: Unexpected error running Liquibase: liquibase.exception.SetupException: Error Reading Changelog File: Found 2 files that match migration/i18n/20.1.0/AR-9349-INFO-Spalte-überlappt-sich-Visuel-mit-der-Icons-in-der-Tabelle.xml: file:/home/liquibase/migration/i18n/20.1.0/AR-9349-INFO-Spalte-überlappt-sich-Visuel-mit-der-Icons-in-der-Tabelle.xml, file:/home/liquibase/migration/i18n/20.1.0/AR-9349-INFO-Spalte-%c3%bcberlappt-sich-Visuel-mit-der-Icons-in-der-Tabelle.xml
	at liquibase.command.CommandScope.execute(CommandScope.java:163)
	at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:51)
	at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:21)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
	at picocli.CommandLine.access$1300(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
	at picocli.CommandLine.execute(CommandLine.java:2078)
	at liquibase.integration.commandline.LiquibaseCommandLine.lambda$execute$1(LiquibaseCommandLine.java:325)
	at liquibase.Scope.child(Scope.java:189)
	at liquibase.Scope.child(Scope.java:165)
	at liquibase.integration.commandline.LiquibaseCommandLine.execute(LiquibaseCommandLine.java:291)
	at liquibase.integration.commandline.LiquibaseCommandLine.main(LiquibaseCommandLine.java:80)

Welcome to the community, @liup! Thanks for asking this question. I don’t have an immediate answer for you, but I wanted to let you know that I’m going to open it up to the larger team and look into it.

Tabby

It’s complaining about finding both:

file:/home/liquibase/migration/i18n/20.1.0/AR-9349-INFO-Spalte-überlappt-sich-Visuel-mit-der-Icons-in-der-Tabelle.xml
file:/home/liquibase/migration/i18n/20.1.0/AR-9349-INFO-Spalte-%bcberlappt-sich-Visuel-mit-der-Icons-in-der-Tabelle.xml

which has one with an encoded ü and one with the actual character. It’s odd they are different, but also odd we’re seeing both. We loop through all the places defined in your classpath setting plus a default of the current working directory looking for the files relative to any of those locations. If we find the same relative path in multiple defined locations, you get that error.

So, I wonder if even though it’s showing the differences in encoding, perhaps it’s more a problem of listing the /home/liquibase/migration in your configuration twice? Is that the directory you are running liquibase from? What do you have in your classpath setting?

Nathan

Hi Nathan, thank you for your reply. I think this is not our case because we include each file only once in changelog. And there is already issues in github for this “bug”.

Sounds good, we’ll take a look at it. Thanks for finding the corresponding issue, that helps with tracking.

Nathan