From 68043fa8755d159c4747a457e320de0f32e66f1b Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Sat, 6 Jun 2020 13:14:47 +0200 Subject: [PATCH] Restore original readOnlyHttpHeaders signature for binary compatibility Closes gh-25034 --- .../org/springframework/http/HttpHeaders.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) 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 ff1e9b0cbd94..6a6f9db9db33 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -385,7 +385,7 @@ public class HttpHeaders implements MultiValueMap, Serializable * An empty {@code HttpHeaders} instance (immutable). * @since 5.0 */ - public static final HttpHeaders EMPTY = new ReadOnlyHttpHeaders(new HttpHeaders(new LinkedMultiValueMap<>(0))); + public static final HttpHeaders EMPTY = new ReadOnlyHttpHeaders(new LinkedMultiValueMap<>()); /** * Pattern matching ETag multiple field values in headers such as "If-Match", "If-None-Match". @@ -1769,17 +1769,21 @@ public String toString() { /** - * Apply a read-only {@code HttpHeaders} wrapper around the given headers. + * Apply a read-only {@code HttpHeaders} wrapper around the given headers, + * if necessary. + * @param headers the headers to expose + * @return a read-only variant of the headers, or the original headers as-is */ - public static HttpHeaders readOnlyHttpHeaders(MultiValueMap headers) { + public static HttpHeaders readOnlyHttpHeaders(HttpHeaders headers) { Assert.notNull(headers, "HttpHeaders must not be null"); - return (headers instanceof ReadOnlyHttpHeaders ? - (HttpHeaders) headers : new ReadOnlyHttpHeaders(headers)); + return (headers instanceof ReadOnlyHttpHeaders ? headers : new ReadOnlyHttpHeaders(headers.headers)); } /** * Remove any read-only wrapper that may have been previously applied around - * the given headers via {@link #readOnlyHttpHeaders(MultiValueMap)}. + * the given headers via {@link #readOnlyHttpHeaders(HttpHeaders)}. + * @param headers the headers to expose + * @return a writable variant of the headers, or the original headers as-is * @since 5.1.1 */ public static HttpHeaders writableHttpHeaders(HttpHeaders headers) {