From d4d49fd54611c56312da5dc93f27fe1c1f3f49da Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Thu, 26 Mar 2026 17:10:25 +0100 Subject: [PATCH] Make base classes for client requests public AbstractBufferingClientHttpRequest and AbstractStreamingClientHttpRequest Closes gh-36501 --- .../http/client/AbstractBufferingClientHttpRequest.java | 8 ++++---- .../http/client/AbstractStreamingClientHttpRequest.java | 2 +- .../http/client/BufferingClientHttpRequestWrapper.java | 2 +- .../http/client/InterceptingClientHttpRequest.java | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/client/AbstractBufferingClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/AbstractBufferingClientHttpRequest.java index da43ca2bd08..eef20a0ff91 100644 --- a/spring-web/src/main/java/org/springframework/http/client/AbstractBufferingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/AbstractBufferingClientHttpRequest.java @@ -31,18 +31,18 @@ import org.springframework.util.StreamUtils; * @author Arjen Poutsma * @since 3.0.6 */ -abstract class AbstractBufferingClientHttpRequest extends AbstractClientHttpRequest { +public abstract class AbstractBufferingClientHttpRequest extends AbstractClientHttpRequest { private final FastByteArrayOutputStream bufferedOutput = new FastByteArrayOutputStream(1024); @Override - protected OutputStream getBodyInternal(HttpHeaders headers) throws IOException { + protected final OutputStream getBodyInternal(HttpHeaders headers) { return this.bufferedOutput; } @Override - protected ClientHttpResponse executeInternal(HttpHeaders headers) throws IOException { + protected final ClientHttpResponse executeInternal(HttpHeaders headers) throws IOException { byte[] bytes = this.bufferedOutput.toByteArrayUnsafe(); if (headers.getContentLength() < 0) { headers.setContentLength(bytes.length); @@ -70,7 +70,7 @@ abstract class AbstractBufferingClientHttpRequest extends AbstractClientHttpRequ * @throws IOException in case of I/O errors from execution * @since 7.0 */ - protected ClientHttpResponse executeWithRequest( + final ClientHttpResponse executeWithRequestAndBody( ClientHttpRequest request, byte[] bufferedOutput, boolean bufferResponse) throws IOException { if (bufferedOutput.length > 0) { diff --git a/spring-web/src/main/java/org/springframework/http/client/AbstractStreamingClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/AbstractStreamingClientHttpRequest.java index 529c0058635..df6e22e45e9 100644 --- a/spring-web/src/main/java/org/springframework/http/client/AbstractStreamingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/AbstractStreamingClientHttpRequest.java @@ -41,7 +41,7 @@ import org.springframework.util.FastByteArrayOutputStream; * @author Rossen Stoyanchev * @since 6.1 */ -abstract class AbstractStreamingClientHttpRequest extends AbstractClientHttpRequest +public abstract class AbstractStreamingClientHttpRequest extends AbstractClientHttpRequest implements StreamingHttpOutputMessage { private @Nullable Body body; diff --git a/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java b/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java index bfe1cca2ed1..a7fdda2cc78 100644 --- a/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java @@ -51,7 +51,7 @@ final class BufferingClientHttpRequestWrapper extends AbstractBufferingClientHtt @Override protected ClientHttpResponse executeInternal(HttpHeaders headers, byte[] bufferedOutput) throws IOException { this.request.getHeaders().putAll(headers); - return executeWithRequest(this.request, bufferedOutput, true); + return executeWithRequestAndBody(this.request, bufferedOutput, true); } } diff --git a/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java index ad383e26c6a..83ad23e99cc 100644 --- a/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java @@ -99,7 +99,7 @@ class InterceptingClientHttpRequest extends AbstractBufferingClientHttpRequest { ClientHttpRequest delegate = this.requestFactory.createRequest(request.getURI(), request.getMethod()); request.getHeaders().forEach((key, value) -> delegate.getHeaders().addAll(key, value)); request.getAttributes().forEach((key, value) -> delegate.getAttributes().put(key, value)); - return executeWithRequest(delegate, body, shouldBufferResponse(request)); + return executeWithRequestAndBody(delegate, body, shouldBufferResponse(request)); } }