From 4aa76f56b8adf0a6fff6f3519b3e581c4d047376 Mon Sep 17 00:00:00 2001 From: yashmehla Date: Sat, 25 Jul 2026 12:51:58 +0530 Subject: [PATCH] Use HttpHeaders.copyOf in DefaultClientResponseBuilder Signed-off-by: yashmehla --- .../reactive/function/client/DefaultClientResponseBuilder.java | 2 +- .../function/client/DefaultClientResponseBuilderTests.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilder.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilder.java index ce5e6c4dba9a..38d03377b9a4 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilder.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilder.java @@ -144,7 +144,7 @@ public ClientResponse.Builder headers(Consumer headersConsumer) { @SuppressWarnings({"ConstantConditions", "NullAway"}) private HttpHeaders getHeaders() { if (this.headers == null) { - this.headers = new HttpHeaders(this.originalResponse.headers().asHttpHeaders()); + this.headers = HttpHeaders.copyOf(this.originalResponse.headers().asHttpHeaders()); } return this.headers; } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilderTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilderTests.java index bb1f4056296c..8c2cfec690ce 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilderTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientResponseBuilderTests.java @@ -86,6 +86,9 @@ void mutate() { .cookies(cookies -> cookies.set("baz", ResponseCookie.from("baz", "quux").build())) .build(); + assertThat(otherResponse.headers().asHttpHeaders().getFirst("foo")).isEqualTo("bar"); + assertThat(otherResponse.headers().asHttpHeaders().getFirst("bar")).isEqualTo("baz"); + assertThat(otherResponse.cookies().getFirst("baz").getValue()).isEqualTo("qux"); assertThat(result.statusCode()).isEqualTo(HttpStatus.BAD_REQUEST); assertThat(result.headers().asHttpHeaders().size()).isEqualTo(3);