Although I agree that spaces in file name should always be avoided, I do think that this should not be a blocking issue. Before Spring Boot 2 this worked without any issue. For legacy projects that contain spaces in their filenames it means that they can't use the auto configured support for liquibase that they used before.
The issue is very easy to reproduce, it always happens when a changelog has a space in it's filename.
Comment From: philwebb
I'm not sure that this is a Spring Boot bug as we don't do much more than pass the changelog property though to Liquibase. Can you please try debugging this line to see if the space is present in the liquibase.setChangeLog parameter.
If it is, then I think you'll need to raise this with the Liquibase project.
Comment From: Ayrossi
@philwebb
Following your comment I started debugging more to have a better idea of what is happening behind the screens.
Using liquibase as a standalone program works even with the spaces in the filenames ( which is why I thought this was not a bug at their side ), however it does seem to indeed not be related to Spring Boot.
Liquibase internally uses the following class for the integration with Spring: FileSystemResource.
More specifically it uses the following method getURL on the resource. This method did not encode spaces in old versions of Spring which is why the integration with liquibase was working.
This behaviour has been modified a long time ago after this issue: FileSystemResource.getURL should return...
I suppose this is something that Liquibase has to take in account? ( And thus, this issue can be closed ).
Comment From: philwebb
Thanks for the update @Ayrossi. If you do open an issue with https://github.com/liquibase/liquibase/issues feel free to paste a link to it here.