diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/NettyHeadersAdapter.java b/spring-web/src/main/java/org/springframework/http/client/reactive/NettyHeadersAdapter.java index c0c92750eb..603a3e7380 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/NettyHeadersAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/NettyHeadersAdapter.java @@ -56,7 +56,9 @@ class NettyHeadersAdapter implements MultiValueMap { @Override public void add(String key, @Nullable String value) { - this.headers.add(key, value); + if (value != null) { + this.headers.add(key, value); + } } @Override @@ -71,7 +73,9 @@ class NettyHeadersAdapter implements MultiValueMap { @Override public void set(String key, @Nullable String value) { - this.headers.set(key, value); + if (value != null) { + this.headers.set(key, value); + } } @Override diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/NettyHeadersAdapter.java b/spring-web/src/main/java/org/springframework/http/server/reactive/NettyHeadersAdapter.java index 4d96585fda..dceddb7fb3 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/NettyHeadersAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/NettyHeadersAdapter.java @@ -56,7 +56,9 @@ class NettyHeadersAdapter implements MultiValueMap { @Override public void add(String key, @Nullable String value) { - this.headers.add(key, value); + if (value != null) { + this.headers.add(key, value); + } } @Override @@ -71,7 +73,9 @@ class NettyHeadersAdapter implements MultiValueMap { @Override public void set(String key, @Nullable String value) { - this.headers.set(key, value); + if (value != null) { + this.headers.set(key, value); + } } @Override diff --git a/spring-web/src/test/java/org/springframework/http/server/reactive/HeadersAdaptersTests.java b/spring-web/src/test/java/org/springframework/http/server/reactive/HeadersAdaptersTests.java index ba0deea017..1b7d34290b 100644 --- a/spring-web/src/test/java/org/springframework/http/server/reactive/HeadersAdaptersTests.java +++ b/spring-web/src/test/java/org/springframework/http/server/reactive/HeadersAdaptersTests.java @@ -94,6 +94,14 @@ class HeadersAdaptersTests { assertThat(headers.get("TestHeader").size()).isEqualTo(1); } + @ParameterizedHeadersTest + void nullValuesShouldNotFail(String displayName, MultiValueMap headers) { + headers.add("TestHeader", null); + assertThat(headers.getFirst("TestHeader")).isNull(); + headers.set("TestHeader", null); + assertThat(headers.getFirst("TestHeader")).isNull(); + } + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @ParameterizedTest(name = "[{index}] {0}")