diff --git a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java index 0a005081ac..4a060b17aa 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -397,6 +397,8 @@ public class HttpHeaders implements MultiValueMap, Serializable private final Map> headers; + private final boolean readOnly; + /** * Constructs a new, empty instance of the {@code HttpHeaders} object. @@ -422,6 +424,7 @@ public class HttpHeaders implements MultiValueMap, Serializable else { this.headers = headers; } + this.readOnly = readOnly; } @@ -1542,7 +1545,7 @@ public class HttpHeaders implements MultiValueMap, Serializable * Return a {@code HttpHeaders} object that can only be read, not written to. */ public static HttpHeaders readOnlyHttpHeaders(HttpHeaders headers) { - return new HttpHeaders(headers, true); + return headers.readOnly ? headers : new HttpHeaders(headers, true); } }