diff --git a/spring-web/src/main/java/org/springframework/http/HttpEntity.java b/spring-web/src/main/java/org/springframework/http/HttpEntity.java index a83039bf55d..d55a6b89172 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpEntity.java +++ b/spring-web/src/main/java/org/springframework/http/HttpEntity.java @@ -102,7 +102,7 @@ public class HttpEntity { */ public HttpEntity(@Nullable T body, @Nullable HttpHeaders headers) { this.body = body; - this.headers = HttpHeaders.readOnlyHttpHeaders(headers != null ? headers : new HttpHeaders()); + this.headers = (headers != null) ? headers : new HttpHeaders(); } /** @@ -123,8 +123,7 @@ public class HttpEntity { */ @Deprecated(since = "7.0", forRemoval = true) public HttpEntity(@Nullable T body, @Nullable MultiValueMap headers) { - this.body = body; - this.headers = HttpHeaders.readOnlyHttpHeaders(headers != null ? new HttpHeaders(headers) : new HttpHeaders()); + this(body, (headers != null) ? new HttpHeaders(headers) : new HttpHeaders()); } diff --git a/spring-web/src/test/java/org/springframework/http/HttpEntityTests.java b/spring-web/src/test/java/org/springframework/http/HttpEntityTests.java index 778664ed8b4..22f4570bf69 100644 --- a/spring-web/src/test/java/org/springframework/http/HttpEntityTests.java +++ b/spring-web/src/test/java/org/springframework/http/HttpEntityTests.java @@ -136,4 +136,14 @@ class HttpEntityTests { .isEmpty(); } + @Test + void headerAreMutable() { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.TEXT_PLAIN); + String body = "foo"; + HttpEntity httpEntity = new HttpEntity<>(body, headers); + httpEntity.getHeaders().setContentType(MediaType.APPLICATION_JSON); + + } + }