From 6c8ebc7f7e61b878fd7b53b944ff2625d832b7b1 Mon Sep 17 00:00:00 2001 From: Vatsa <9.vatsa@gmail.com> Date: Tue, 21 Mar 2023 13:05:12 -0400 Subject: [PATCH] Add non-null assertions in DefaultServerResponseBuilder This commit adds various non-null assertions to DefaultServerResponseBuilder, in both Spring MVC and WebFlux. Closes gh-30157 --- .../function/server/DefaultServerResponseBuilder.java | 6 ++++++ .../web/servlet/function/DefaultServerResponseBuilder.java | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilder.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilder.java index 93f96ecffc..fc935cbe9b 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilder.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilder.java @@ -91,6 +91,7 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { @Override public ServerResponse.BodyBuilder header(String headerName, String... headerValues) { + Assert.notNull(headerName, "HeaderName must not be null"); for (String headerValue : headerValues) { this.headers.add(headerName, headerValue); } @@ -99,6 +100,7 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { @Override public ServerResponse.BodyBuilder headers(Consumer headersConsumer) { + Assert.notNull(headersConsumer, "HeadersConsumer must not be null"); headersConsumer.accept(this.headers); return this; } @@ -112,18 +114,21 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { @Override public ServerResponse.BodyBuilder cookies(Consumer> cookiesConsumer) { + Assert.notNull(cookiesConsumer, "CookiesConsumer must not be null"); cookiesConsumer.accept(this.cookies); return this; } @Override public ServerResponse.BodyBuilder allow(HttpMethod... allowedMethods) { + Assert.notNull(allowedMethods, "Http allowedMethod must not be null"); this.headers.setAllow(new LinkedHashSet<>(Arrays.asList(allowedMethods))); return this; } @Override public ServerResponse.BodyBuilder allow(Set allowedMethods) { + Assert.notNull(allowedMethods, "Http allowedMethod must not be null"); this.headers.setAllow(allowedMethods); return this; } @@ -142,6 +147,7 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { @Override public ServerResponse.BodyBuilder eTag(String etag) { + Assert.notNull(etag, "etag must not be null"); if (!etag.startsWith("\"") && !etag.startsWith("W/\"")) { etag = "\"" + etag; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultServerResponseBuilder.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultServerResponseBuilder.java index b5567ff2e2..e6c490444e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultServerResponseBuilder.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/function/DefaultServerResponseBuilder.java @@ -70,6 +70,7 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { @Override public ServerResponse.BodyBuilder header(String headerName, String... headerValues) { + Assert.notNull(headerName, "HeaderName must not be null"); for (String headerValue : headerValues) { this.headers.add(headerName, headerValue); } @@ -78,6 +79,7 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { @Override public ServerResponse.BodyBuilder headers(Consumer headersConsumer) { + Assert.notNull(headersConsumer, "HeaderConsumer must not be null"); headersConsumer.accept(this.headers); return this; } @@ -91,18 +93,21 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { @Override public ServerResponse.BodyBuilder cookies(Consumer> cookiesConsumer) { + Assert.notNull(cookiesConsumer, "CookiesConsumer must not be null"); cookiesConsumer.accept(this.cookies); return this; } @Override public ServerResponse.BodyBuilder allow(HttpMethod... allowedMethods) { + Assert.notNull(allowedMethods, "Http AllowedMethods must not be null"); this.headers.setAllow(new LinkedHashSet<>(Arrays.asList(allowedMethods))); return this; } @Override public ServerResponse.BodyBuilder allow(Set allowedMethods) { + Assert.notNull(allowedMethods, "Http AllowedMethods must not be null"); this.headers.setAllow(allowedMethods); return this; } @@ -115,12 +120,14 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder { @Override public ServerResponse.BodyBuilder contentType(MediaType contentType) { + Assert.notNull(contentType, "ContentType must not be null"); this.headers.setContentType(contentType); return this; } @Override public ServerResponse.BodyBuilder eTag(String etag) { + Assert.notNull(etag, "etag must not be null"); if (!etag.startsWith("\"") && !etag.startsWith("W/\"")) { etag = "\"" + etag; }