diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java b/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java index 266f6bbe3cfe..327e818e17f2 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java @@ -142,10 +142,10 @@ protected static final class DefaultCustomCodecs implements CustomCodecs { * @since 5.1.12 */ DefaultCustomCodecs(DefaultCustomCodecs other) { - other.typedReaders.putAll(this.typedReaders); - other.typedWriters.putAll(this.typedWriters); - other.objectReaders.putAll(this.objectReaders); - other.objectWriters.putAll(this.objectWriters); + this.typedReaders.putAll(other.typedReaders); + this.typedWriters.putAll(other.typedWriters); + this.objectReaders.putAll(other.objectReaders); + this.objectWriters.putAll(other.objectWriters); } @Override diff --git a/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java b/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java index 71a1d7a84839..f044185e2f25 100644 --- a/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java +++ b/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java @@ -279,7 +279,7 @@ public void encoderDecoderOverrides() { } @Test - public void cloneCustomCodecs() { + public void cloneEmptyCustomCodecs() { this.configurer.registerDefaults(false); CodecConfigurer clone = this.configurer.clone(); @@ -294,6 +294,22 @@ public void cloneCustomCodecs() { assertThat(clone.getWriters().size()).isEqualTo(2); } + @Test + public void cloneCustomCodecs() { + CodecConfigurer from = new TestCodecConfigurer(); + from.registerDefaults(false); + from.customCodecs().register(new Jackson2JsonEncoder()); + from.customCodecs().register(new Jackson2JsonDecoder()); + from.customCodecs().register(new ServerSentEventHttpMessageReader()); + from.customCodecs().register(new ServerSentEventHttpMessageWriter()); + + CodecConfigurer clone = from.clone(); + assertThat(from.getReaders().size()).isEqualTo(2); + assertThat(from.getWriters().size()).isEqualTo(2); + assertThat(clone.getReaders().size()).isEqualTo(2); + assertThat(clone.getWriters().size()).isEqualTo(2); + } + @Test public void cloneDefaultCodecs() { CodecConfigurer clone = this.configurer.clone();