diff --git a/module/spring-boot-web-server/src/main/java/org/springframework/boot/web/server/MimeMappings.java b/module/spring-boot-web-server/src/main/java/org/springframework/boot/web/server/MimeMappings.java index 1a0c44f8a5f4..0257d500fc44 100644 --- a/module/spring-boot-web-server/src/main/java/org/springframework/boot/web/server/MimeMappings.java +++ b/module/spring-boot-web-server/src/main/java/org/springframework/boot/web/server/MimeMappings.java @@ -72,7 +72,8 @@ public MimeMappings(Map mappings) { */ MimeMappings(MimeMappings mappings, boolean mutable) { Assert.notNull(mappings, "'mappings' must not be null"); - this.map = (mutable ? new LinkedHashMap<>(mappings.map) : Collections.unmodifiableMap(mappings.map)); + Map source = mappings.getMap(); + this.map = (mutable ? new LinkedHashMap<>(source) : Collections.unmodifiableMap(source)); } /** @@ -132,7 +133,7 @@ public boolean equals(Object obj) { return true; } if (obj instanceof MimeMappings other) { - return getMap().equals(other.map); + return getMap().equals(other.getMap()); } return false; } diff --git a/module/spring-boot-web-server/src/test/java/org/springframework/boot/web/server/MimeMappingsTests.java b/module/spring-boot-web-server/src/test/java/org/springframework/boot/web/server/MimeMappingsTests.java index 7343cc9e563a..28062f1ac683 100644 --- a/module/spring-boot-web-server/src/test/java/org/springframework/boot/web/server/MimeMappingsTests.java +++ b/module/spring-boot-web-server/src/test/java/org/springframework/boot/web/server/MimeMappingsTests.java @@ -51,6 +51,28 @@ void createFromExisting() { assertThat(clone.get("baz")).isNull(); } + @Test + void createFromDefault() { + MimeMappings clone = new MimeMappings(MimeMappings.DEFAULT); + assertThat(clone).hasSameSizeAs(MimeMappings.DEFAULT); + assertThat(clone.get("html")).isEqualTo("text/html"); + clone.add("foo", "bar"); + assertThat(MimeMappings.DEFAULT.get("foo")).isNull(); + } + + @Test + void makeUnmodifiableFromDefault() { + MimeMappings unmodifiable = MimeMappings.unmodifiableMappings(MimeMappings.DEFAULT); + assertThat(unmodifiable.get("html")).isEqualTo("text/html"); + } + + @Test + void equalsIsSymmetricWithDefault() { + MimeMappings clone = new MimeMappings(MimeMappings.DEFAULT); + assertThat(clone).isEqualTo(MimeMappings.DEFAULT); + assertThat(MimeMappings.DEFAULT).isEqualTo(clone); + } + @Test void createFromMap() { Map mappings = new HashMap<>();