diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java index faac6d1564d..3417e4f34a7 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java @@ -114,6 +114,8 @@ public class FlywayAutoConfiguration { else { flyway.setDataSource(this.dataSource); } + //Explicitly set locations because the getter doesn't return a mutable value + flyway.setLocations(this.properties.getLocations().toArray(new String[0])); return flyway; } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java index b4dca435b98..b80d4327b73 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayProperties.java @@ -16,6 +16,7 @@ package org.springframework.boot.autoconfigure.flyway; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -39,7 +40,7 @@ public class FlywayProperties { /** * Locations of migrations scripts. */ - private List locations = Arrays.asList("db/migration"); + private List locations = new ArrayList(Arrays.asList("db/migration")); /** * Check that migration scripts location exists. diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java index 708be5fadd6..47cfe3907f4 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfigurationTests.java @@ -104,8 +104,8 @@ public class FlywayAutoConfigurationTests { @Test public void overrideLocations() throws Exception { - EnvironmentTestUtils.addEnvironment(this.context, - "flyway.locations:classpath:db/changelog,classpath:db/migration"); + EnvironmentTestUtils.addEnvironment(this.context, "flyway.locations[0]:classpath:db/changelog", + "flyway.locations[1]:classpath:db/migration"); registerAndRefresh(EmbeddedDataSourceConfiguration.class, FlywayAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class);