Fix NPE when calling NettyHeadersAdapter.add()
Prior to this commit, the `NettyHeadersAdapter` would directly delegate the `add()` and `set()` calls to the adapted `io.netty.handler.codec.http.HttpHeaders`. This implementation rejects `null` values with exceptions. This commit aligns the behavior here with other implementations, by not rejecting null values but simply ignoring them. Fixes gh-26274
This commit is contained in:
parent
bcfbde9848
commit
83c19cd60e
|
@ -56,7 +56,9 @@ class NettyHeadersAdapter implements MultiValueMap<String, String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(String key, @Nullable String value) {
|
public void add(String key, @Nullable String value) {
|
||||||
this.headers.add(key, value);
|
if (value != null) {
|
||||||
|
this.headers.add(key, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -71,7 +73,9 @@ class NettyHeadersAdapter implements MultiValueMap<String, String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void set(String key, @Nullable String value) {
|
public void set(String key, @Nullable String value) {
|
||||||
this.headers.set(key, value);
|
if (value != null) {
|
||||||
|
this.headers.set(key, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -56,7 +56,9 @@ class NettyHeadersAdapter implements MultiValueMap<String, String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(String key, @Nullable String value) {
|
public void add(String key, @Nullable String value) {
|
||||||
this.headers.add(key, value);
|
if (value != null) {
|
||||||
|
this.headers.add(key, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -71,7 +73,9 @@ class NettyHeadersAdapter implements MultiValueMap<String, String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void set(String key, @Nullable String value) {
|
public void set(String key, @Nullable String value) {
|
||||||
this.headers.set(key, value);
|
if (value != null) {
|
||||||
|
this.headers.set(key, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -94,6 +94,14 @@ class HeadersAdaptersTests {
|
||||||
assertThat(headers.get("TestHeader").size()).isEqualTo(1);
|
assertThat(headers.get("TestHeader").size()).isEqualTo(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ParameterizedHeadersTest
|
||||||
|
void nullValuesShouldNotFail(String displayName, MultiValueMap<String, String> headers) {
|
||||||
|
headers.add("TestHeader", null);
|
||||||
|
assertThat(headers.getFirst("TestHeader")).isNull();
|
||||||
|
headers.set("TestHeader", null);
|
||||||
|
assertThat(headers.getFirst("TestHeader")).isNull();
|
||||||
|
}
|
||||||
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(ElementType.METHOD)
|
@Target(ElementType.METHOD)
|
||||||
@ParameterizedTest(name = "[{index}] {0}")
|
@ParameterizedTest(name = "[{index}] {0}")
|
||||||
|
|
Loading…
Reference in New Issue