diff --git a/core/spring-boot/src/main/java/org/springframework/boot/env/OriginTrackedYamlLoader.java b/core/spring-boot/src/main/java/org/springframework/boot/env/OriginTrackedYamlLoader.java index 25818122533..82f1811acf2 100644 --- a/core/spring-boot/src/main/java/org/springframework/boot/env/OriginTrackedYamlLoader.java +++ b/core/spring-boot/src/main/java/org/springframework/boot/env/OriginTrackedYamlLoader.java @@ -82,7 +82,7 @@ class OriginTrackedYamlLoader extends YamlProcessor { List> load() { List> result = new ArrayList<>(); - process((properties, map) -> result.add(getFlattenedMap(map))); + process((properties, map) -> result.add(getFlattenedMap(map, true, ""))); return result; } diff --git a/core/spring-boot/src/test/java/org/springframework/boot/env/OriginTrackedYamlLoaderTests.java b/core/spring-boot/src/test/java/org/springframework/boot/env/OriginTrackedYamlLoaderTests.java index 29e22300794..0c0296bd800 100644 --- a/core/spring-boot/src/test/java/org/springframework/boot/env/OriginTrackedYamlLoaderTests.java +++ b/core/spring-boot/src/test/java/org/springframework/boot/env/OriginTrackedYamlLoaderTests.java @@ -39,6 +39,7 @@ import org.springframework.core.io.Resource; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.entry; /** * Tests for {@link OriginTrackedYamlLoader}. @@ -154,9 +155,8 @@ class OriginTrackedYamlLoaderTests { @Test @WithTestYamlResource - void emptyMapsAreDropped() { - Object emptyMap = getValue("emptymap"); - assertThat(emptyMap).isNull(); + void emptyMapsOrObjectsAreNotDropped() { + assertThat(getFirstResult()).contains(entry("emptymap", "")); } @Test @@ -250,10 +250,15 @@ class OriginTrackedYamlLoaderTests { @SuppressWarnings("unchecked") private @Nullable T getValue(String name) { + return (T) getFirstResult().get(name); + } + + private Map getFirstResult() { if (this.result == null) { this.result = this.loader.load(); } - return (T) this.result.get(0).get(name); + Map map = this.result.get(0); + return map; } private String getLocation(OriginTrackedValue value) {