From 6dcdf191692f79cbb475adae50e7ee26d1930514 Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Wed, 19 Aug 2026 10:55:12 +0300 Subject: [PATCH] Polishing in Protobuf decoders See gh-37147 --- .../http/codec/protobuf/ProtobufDecoder.java | 23 ++++++++-------- .../protobuf/ProtobufHttpMessageWriter.java | 26 +++++++++---------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/codec/protobuf/ProtobufDecoder.java b/spring-web/src/main/java/org/springframework/http/codec/protobuf/ProtobufDecoder.java index 72e2a954aa8..81fa9ce5600 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/protobuf/ProtobufDecoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/protobuf/ProtobufDecoder.java @@ -173,18 +173,6 @@ public class ProtobufDecoder extends ProtobufCodecSupport implements DecoderThis method uses a ConcurrentHashMap for caching method lookups. @@ -198,6 +186,17 @@ public class ProtobufDecoder extends ProtobufCodecSupport implements Decoder getDecodableMimeTypes() { return getMimeTypes(); diff --git a/spring-web/src/main/java/org/springframework/http/codec/protobuf/ProtobufHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/protobuf/ProtobufHttpMessageWriter.java index 4a132503f30..1ec9f50e3b0 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/protobuf/ProtobufHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/protobuf/ProtobufHttpMessageWriter.java @@ -95,6 +95,19 @@ public class ProtobufHttpMessageWriter extends EncoderHttpMessageWriter } } + /** + * Create a new {@code Message.Builder} instance for the given class. + *

This method uses a ConcurrentHashMap for caching method lookups. + */ + protected static Message.Builder getMessageBuilder(Class clazz) throws Exception { + Method method = methodCache.get(clazz); + if (method == null) { + method = clazz.getMethod("newBuilder"); + methodCache.put(clazz, method); + } + return (Message.Builder) method.invoke(clazz); + } + /** * Return the {@code MediaType} to use when the input Publisher is multivalued. * @since 7.0 @@ -118,17 +131,4 @@ public class ProtobufHttpMessageWriter extends EncoderHttpMessageWriter protected void extendHeaders(ReactiveHttpOutputMessage message, Map hints) { } - /** - * Create a new {@code Message.Builder} instance for the given class. - *

This method uses a ConcurrentHashMap for caching method lookups. - */ - protected static Message.Builder getMessageBuilder(Class clazz) throws Exception { - Method method = methodCache.get(clazz); - if (method == null) { - method = clazz.getMethod("newBuilder"); - methodCache.put(clazz, method); - } - return (Message.Builder) method.invoke(clazz); - } - }