diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java b/spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java index 9f930712a0a..2ce06b23a0e 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java @@ -217,12 +217,6 @@ class BaseDefaultCodecs implements CodecConfigurer.DefaultCodecs, CodecConfigure initObjectWriters(); } - @Override - public void protobufDecoder(Decoder decoder) { - this.protobufDecoder = decoder; - initTypedReaders(); - } - @Override public void jackson2SmileDecoder(Decoder decoder) { this.jackson2SmileDecoder = decoder; @@ -235,6 +229,12 @@ class BaseDefaultCodecs implements CodecConfigurer.DefaultCodecs, CodecConfigure initObjectWriters(); } + @Override + public void protobufDecoder(Decoder decoder) { + this.protobufDecoder = decoder; + initTypedReaders(); + } + @Override public void protobufEncoder(Encoder encoder) { this.protobufEncoder = encoder; diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/ClientDefaultCodecsImpl.java b/spring-web/src/main/java/org/springframework/http/codec/support/ClientDefaultCodecsImpl.java index eea640732ff..e32c8f53dab 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/ClientDefaultCodecsImpl.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/ClientDefaultCodecsImpl.java @@ -86,15 +86,6 @@ class ClientDefaultCodecsImpl extends BaseDefaultCodecs implements ClientCodecCo initObjectReaders(); } - @Override - public ClientDefaultCodecsImpl clone() { - ClientDefaultCodecsImpl codecs = new ClientDefaultCodecsImpl(); - codecs.multipartCodecs = this.multipartCodecs; - codecs.sseDecoder = this.sseDecoder; - codecs.partWritersSupplier = this.partWritersSupplier; - return codecs; - } - @Override protected void extendObjectReaders(List> objectReaders) { diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java index 6b29c1ee760..0227b0a684c 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java @@ -81,7 +81,8 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa private WebSessionManager sessionManager = new DefaultWebSessionManager(); - private ServerCodecConfigurer codecConfigurer = ServerCodecConfigurer.create(); + @Nullable + private ServerCodecConfigurer codecConfigurer; private LocaleContextResolver localeContextResolver = new AcceptHeaderLocaleContextResolver(); @@ -143,6 +144,9 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa * Return the configured {@link ServerCodecConfigurer}. */ public ServerCodecConfigurer getCodecConfigurer() { + if (this.codecConfigurer == null) { + setCodecConfigurer(ServerCodecConfigurer.create()); + } return this.codecConfigurer; }