Hello,
Upgrading the parent POM of a spring boot application project with a liquibase-managed mysql database to org.springframework.boot:spring-boot-starter-parent:2.3.9
makes the application fail to start (v2.4.3 probably also affected while 2.4.2 is not). With version 2.3.8 it still worked.
Shortened stacktrace (also attached as stacktrace-cannot-create-bean-liquibase.log):
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [.../LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ClassCastException: java.time.LocalDateTime incompatible with java.lang.String
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1799)
[...]
Caused by: java.lang.ClassCastException: java.time.LocalDateTime incompatible with java.lang.String
at liquibase.changelog.StandardChangeLogHistoryService.getRanChangeSets(StandardChangeLogHistoryService.java:328)
My POM relies on the dependency management of the parent POM so it now gets dependencies mysql:mysql-connector-java:8.0.23
and org.liquibase:liquibase-core:3.8.9
. The problem is raised in liquibase issue 1639 but only fixed with the very latest version 4.3.1 . A down-merge and release as 3.10.4 was discussed in that issue but not done (yet) :disappointed:.
Changing the liquibase-core dependency of my application to directly managed and using version org.liquibase:liquibase-core:4.3.1
worked insofar as the application started again.
Comment From: wilkinsona
Thanks for the report. This is a duplicate of some comments on the MySQL 8.0.23 upgrade issue: https://github.com/spring-projects/spring-boot/issues/24920#issuecomment-768225889.