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 12216b83d5a..f3466ef18ee 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -454,7 +454,7 @@ public class HttpHeaders implements Serializable { */ public HttpHeaders(MultiValueMap headers) { Assert.notNull(headers, "MultiValueMap must not be null"); - this.headers = headers; + this.headers = (headers instanceof HttpHeaders httpHeaders ? unwrap(httpHeaders) : headers); } /** @@ -2115,6 +2115,11 @@ public class HttpHeaders implements Serializable { * @since 5.1.4 */ public static String formatHeaders(MultiValueMap headers) { + return doFormatHeaders(headers instanceof HttpHeaders httpHeaders ? + unwrap(httpHeaders) : headers); + } + + private static String doFormatHeaders(MultiValueMap headers) { Set headerNames = new CaseInsensitiveHeaderNameSet(headers); String suffix = "]"; if (headerNames.size() != headers.size()) {