diff --git a/spring-test/src/main/java/org/springframework/mock/web/server/MockWebSession.java b/spring-test/src/main/java/org/springframework/mock/web/server/MockWebSession.java index 5bf53efbda6..9aeee2b014c 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/server/MockWebSession.java +++ b/spring-test/src/main/java/org/springframework/mock/web/server/MockWebSession.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.mock.web.server; import java.time.Clock; @@ -22,6 +23,8 @@ import java.util.Map; import reactor.core.publisher.Mono; +import org.springframework.lang.Nullable; +import org.springframework.util.Assert; import org.springframework.web.server.WebSession; import org.springframework.web.server.session.InMemoryWebSessionStore; @@ -46,13 +49,14 @@ public class MockWebSession implements WebSession { this(null); } - @SuppressWarnings("ConstantConditions") - public MockWebSession(Clock clock) { + public MockWebSession(@Nullable Clock clock) { InMemoryWebSessionStore sessionStore = new InMemoryWebSessionStore(); if (clock != null) { sessionStore.setClock(clock); } - this.delegate = sessionStore.createWebSession().block(); + WebSession session = sessionStore.createWebSession().block(); + Assert.state(session != null, "WebSession must not be null"); + this.delegate = session; } diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/ClientDefaultCodecsImpl.java b/spring-web/src/main/java/org/springframework/http/codec/support/ClientDefaultCodecsImpl.java index cc5c0933b19..10a57151b87 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/ClientDefaultCodecsImpl.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/ClientDefaultCodecsImpl.java @@ -13,9 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.http.codec.support; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.function.Supplier; @@ -79,7 +81,7 @@ class ClientDefaultCodecsImpl extends BaseDefaultCodecs implements ClientCodecCo @Nullable private Decoder getSseDecoder() { - return this.sseDecoder != null ? this.sseDecoder : jackson2Present ? getJackson2JsonDecoder() : null; + return (this.sseDecoder != null ? this.sseDecoder : jackson2Present ? getJackson2JsonDecoder() : null); } @Override @@ -87,10 +89,16 @@ class ClientDefaultCodecsImpl extends BaseDefaultCodecs implements ClientCodecCo typedWriters.add(new MultipartHttpMessageWriter(getPartWriters(), new FormHttpMessageWriter())); } - @SuppressWarnings("ConstantConditions") private List> getPartWriters() { - return this.multipartCodecs != null ? - this.multipartCodecs.getWriters() : this.partWritersSupplier.get(); + if (this.multipartCodecs != null) { + return this.multipartCodecs.getWriters(); + } + else if (this.partWritersSupplier != null) { + return this.partWritersSupplier.get(); + } + else { + return Collections.emptyList(); + } } @@ -101,7 +109,6 @@ class ClientDefaultCodecsImpl extends BaseDefaultCodecs implements ClientCodecCo private final List> writers = new ArrayList<>(); - @Override public ClientCodecConfigurer.MultipartCodecs encoder(Encoder encoder) { writer(new EncoderHttpMessageWriter<>(encoder)); diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/DefaultClientCodecConfigurer.java b/spring-web/src/main/java/org/springframework/http/codec/support/DefaultClientCodecConfigurer.java index e17b4a040e8..94d86935e55 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/DefaultClientCodecConfigurer.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/DefaultClientCodecConfigurer.java @@ -26,13 +26,11 @@ import org.springframework.http.codec.ClientCodecConfigurer; */ public class DefaultClientCodecConfigurer extends BaseCodecConfigurer implements ClientCodecConfigurer { - public DefaultClientCodecConfigurer() { super(new ClientDefaultCodecsImpl()); ((ClientDefaultCodecsImpl) defaultCodecs()).setPartWritersSupplier(() -> getWritersInternal(true)); } - @Override public ClientDefaultCodecs defaultCodecs() { return (ClientDefaultCodecs) super.defaultCodecs(); diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/DefaultServerCodecConfigurer.java b/spring-web/src/main/java/org/springframework/http/codec/support/DefaultServerCodecConfigurer.java index b6bdbe73e00..3839cec276d 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/DefaultServerCodecConfigurer.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/DefaultServerCodecConfigurer.java @@ -26,7 +26,6 @@ import org.springframework.http.codec.ServerCodecConfigurer; */ public class DefaultServerCodecConfigurer extends BaseCodecConfigurer implements ServerCodecConfigurer { - public DefaultServerCodecConfigurer() { super(new ServerDefaultCodecsImpl()); } diff --git a/spring-web/src/test/java/org/springframework/mock/web/test/server/MockWebSession.java b/spring-web/src/test/java/org/springframework/mock/web/test/server/MockWebSession.java index 3ac6ba09fb9..65ae22a43b0 100644 --- a/spring-web/src/test/java/org/springframework/mock/web/test/server/MockWebSession.java +++ b/spring-web/src/test/java/org/springframework/mock/web/test/server/MockWebSession.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.mock.web.test.server; import java.time.Clock; @@ -22,6 +23,8 @@ import java.util.Map; import reactor.core.publisher.Mono; +import org.springframework.lang.Nullable; +import org.springframework.util.Assert; import org.springframework.web.server.WebSession; import org.springframework.web.server.session.InMemoryWebSessionStore; @@ -46,13 +49,14 @@ public class MockWebSession implements WebSession { this(null); } - @SuppressWarnings("ConstantConditions") - public MockWebSession(Clock clock) { + public MockWebSession(@Nullable Clock clock) { InMemoryWebSessionStore sessionStore = new InMemoryWebSessionStore(); if (clock != null) { sessionStore.setClock(clock); } - this.delegate = sessionStore.createWebSession().block(); + WebSession session = sessionStore.createWebSession().block(); + Assert.state(session != null, "WebSession must not be null"); + this.delegate = session; } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/DefaultResourceResolverChain.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/DefaultResourceResolverChain.java index e2b56f2eba5..de866c6eaee 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/DefaultResourceResolverChain.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/DefaultResourceResolverChain.java @@ -44,7 +44,7 @@ class DefaultResourceResolverChain implements ResourceResolverChain { public DefaultResourceResolverChain(@Nullable List resolvers) { - resolvers = resolvers != null ? resolvers : Collections.emptyList(); + resolvers = (resolvers != null ? resolvers : Collections.emptyList()); DefaultResourceResolverChain chain = initChain(new ArrayList<>(resolvers)); this.resolver = chain.resolver; this.nextChain = chain.nextChain; @@ -52,40 +52,35 @@ class DefaultResourceResolverChain implements ResourceResolverChain { private static DefaultResourceResolverChain initChain(ArrayList resolvers) { DefaultResourceResolverChain chain = new DefaultResourceResolverChain(null, null); - ListIterator itr = resolvers.listIterator(resolvers.size()); - while (itr.hasPrevious()) { - chain = new DefaultResourceResolverChain(itr.previous(), chain); + ListIterator it = resolvers.listIterator(resolvers.size()); + while (it.hasPrevious()) { + chain = new DefaultResourceResolverChain(it.previous(), chain); } return chain; } - private DefaultResourceResolverChain(@Nullable ResourceResolver resolver, - @Nullable ResourceResolverChain chain) { - + private DefaultResourceResolverChain(@Nullable ResourceResolver resolver, @Nullable ResourceResolverChain chain) { Assert.isTrue((resolver == null && chain == null) || (resolver != null && chain != null), "Both resolver and resolver chain must be null, or neither is"); - this.resolver = resolver; this.nextChain = chain; } @Override - @SuppressWarnings("ConstantConditions") public Mono resolveResource(@Nullable ServerWebExchange exchange, String requestPath, List locations) { - return this.resolver != null ? + return (this.resolver != null && this.nextChain != null ? this.resolver.resolveResource(exchange, requestPath, locations, this.nextChain) : - Mono.empty(); + Mono.empty()); } @Override - @SuppressWarnings("ConstantConditions") public Mono resolveUrlPath(String resourcePath, List locations) { - return this.resolver != null ? + return (this.resolver != null && this.nextChain != null ? this.resolver.resolveUrlPath(resourcePath, locations, this.nextChain) : - Mono.empty(); + Mono.empty()); } } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/DefaultResourceTransformerChain.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/DefaultResourceTransformerChain.java index 7c99d0dad64..8b9a86471d8 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/DefaultResourceTransformerChain.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/DefaultResourceTransformerChain.java @@ -45,13 +45,12 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain { private final ResourceTransformerChain nextChain; - public DefaultResourceTransformerChain(ResourceResolverChain resolverChain, - @Nullable List transformers) { + public DefaultResourceTransformerChain( + ResourceResolverChain resolverChain, @Nullable List transformers) { Assert.notNull(resolverChain, "ResourceResolverChain is required"); this.resolverChain = resolverChain; - - transformers = transformers != null ? transformers : Collections.emptyList(); + transformers = (transformers != null ? transformers : Collections.emptyList()); DefaultResourceTransformerChain chain = initTransformerChain(resolverChain, new ArrayList<>(transformers)); this.transformer = chain.transformer; this.nextChain = chain.nextChain; @@ -61,9 +60,9 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain { ArrayList transformers) { DefaultResourceTransformerChain chain = new DefaultResourceTransformerChain(resolverChain, null, null); - ListIterator itr = transformers.listIterator(transformers.size()); - while (itr.hasPrevious()) { - chain = new DefaultResourceTransformerChain(resolverChain, itr.previous(), chain); + ListIterator it = transformers.listIterator(transformers.size()); + while (it.hasPrevious()) { + chain = new DefaultResourceTransformerChain(resolverChain, it.previous(), chain); } return chain; } @@ -73,23 +72,22 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain { Assert.isTrue((transformer == null && chain == null) || (transformer != null && chain != null), "Both transformer and transformer chain must be null, or neither is"); - this.resolverChain = resolverChain; this.transformer = transformer; this.nextChain = chain; } + + @Override public ResourceResolverChain getResolverChain() { return this.resolverChain; } - @Override - @SuppressWarnings("ConstantConditions") public Mono transform(ServerWebExchange exchange, Resource resource) { - return this.transformer != null ? + return (this.transformer != null && this.nextChain != null ? this.transformer.transform(exchange, resource, this.nextChain) : - Mono.just(resource); + Mono.just(resource)); } -} \ No newline at end of file +} diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestPartMethodArgumentResolverTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestPartMethodArgumentResolverTests.java index 7190b6e4e25..cc8c632fa78 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestPartMethodArgumentResolverTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestPartMethodArgumentResolverTests.java @@ -249,9 +249,7 @@ public class RequestPartMethodArgumentResolverTests { return (T) value; } - @SuppressWarnings("ConstantConditions") private ServerWebExchange createExchange(MultipartBodyBuilder builder) { - MockClientHttpRequest clientRequest = new MockClientHttpRequest(HttpMethod.POST, "/"); this.writer.write(Mono.just(builder.build()), forClass(MultiValueMap.class), MediaType.MULTIPART_FORM_DATA, clientRequest, Collections.emptyMap()).block(); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandlerTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandlerTests.java index c6a2a8b8ce6..a3f3c7255a3 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandlerTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ResponseEntityResultHandlerTests.java @@ -56,16 +56,13 @@ import org.springframework.web.reactive.HandlerResult; import org.springframework.web.reactive.accept.RequestedContentTypeResolver; import org.springframework.web.reactive.accept.RequestedContentTypeResolverBuilder; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.springframework.core.ResolvableType.forClassWithGenerics; -import static org.springframework.http.MediaType.APPLICATION_JSON; -import static org.springframework.http.ResponseEntity.notFound; -import static org.springframework.http.ResponseEntity.ok; -import static org.springframework.mock.http.server.reactive.test.MockServerHttpRequest.get; -import static org.springframework.web.method.ResolvableMethod.on; -import static org.springframework.web.reactive.HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE; +import static org.junit.Assert.*; +import static org.springframework.core.ResolvableType.*; +import static org.springframework.http.MediaType.*; +import static org.springframework.http.ResponseEntity.*; +import static org.springframework.mock.http.server.reactive.test.MockServerHttpRequest.*; +import static org.springframework.web.method.ResolvableMethod.*; +import static org.springframework.web.reactive.HandlerMapping.*; /** * Unit tests for {@link ResponseEntityResultHandler}. When adding a test also @@ -106,9 +103,7 @@ public class ResponseEntityResultHandlerTests { @Test - @SuppressWarnings("ConstantConditions") - public void supports() throws NoSuchMethodException { - + public void supports() throws Exception { Object value = null; MethodParameter returnType = on(TestController.class).resolveReturnType(entity(String.class)); @@ -133,9 +128,7 @@ public class ResponseEntityResultHandlerTests { } @Test - @SuppressWarnings("ConstantConditions") - public void doesNotSupport() throws NoSuchMethodException { - + public void doesNotSupport() throws Exception { Object value = null; MethodParameter returnType = on(TestController.class).resolveReturnType(String.class); @@ -417,7 +410,6 @@ public class ResponseEntityResultHandlerTests { Flux fluxWildcard() { return null; } Object object() { return null; } - } } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultResourceResolverChain.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultResourceResolverChain.java index 4b4f8d42d6b..f88ef884cca 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultResourceResolverChain.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultResourceResolverChain.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,7 +42,7 @@ class DefaultResourceResolverChain implements ResourceResolverChain { public DefaultResourceResolverChain(@Nullable List resolvers) { - resolvers = resolvers != null ? resolvers : Collections.emptyList(); + resolvers = (resolvers != null ? resolvers : Collections.emptyList()); DefaultResourceResolverChain chain = initChain(new ArrayList<>(resolvers)); this.resolver = chain.resolver; this.nextChain = chain.nextChain; @@ -50,19 +50,16 @@ class DefaultResourceResolverChain implements ResourceResolverChain { private static DefaultResourceResolverChain initChain(ArrayList resolvers) { DefaultResourceResolverChain chain = new DefaultResourceResolverChain(null, null); - ListIterator itr = resolvers.listIterator(resolvers.size()); - while (itr.hasPrevious()) { - chain = new DefaultResourceResolverChain(itr.previous(), chain); + ListIterator it = resolvers.listIterator(resolvers.size()); + while (it.hasPrevious()) { + chain = new DefaultResourceResolverChain(it.previous(), chain); } return chain; } - private DefaultResourceResolverChain(@Nullable ResourceResolver resolver, - @Nullable ResourceResolverChain chain) { - + private DefaultResourceResolverChain(@Nullable ResourceResolver resolver, @Nullable ResourceResolverChain chain) { Assert.isTrue((resolver == null && chain == null) || (resolver != null && chain != null), "Both resolver and resolver chain must be null, or neither is"); - this.resolver = resolver; this.nextChain = chain; } @@ -70,20 +67,18 @@ class DefaultResourceResolverChain implements ResourceResolverChain { @Override @Nullable - @SuppressWarnings("ConstantConditions") - public Resource resolveResource(@Nullable HttpServletRequest request, String requestPath, - List locations) { + public Resource resolveResource( + @Nullable HttpServletRequest request, String requestPath, List locations) { - return this.resolver != null ? - this.resolver.resolveResource(request, requestPath, locations, this.nextChain) : null; + return (this.resolver != null && this.nextChain != null ? + this.resolver.resolveResource(request, requestPath, locations, this.nextChain) : null); } @Override @Nullable - @SuppressWarnings("ConstantConditions") public String resolveUrlPath(String resourcePath, List locations) { - return this.resolver != null ? - this.resolver.resolveUrlPath(resourcePath, locations, this.nextChain) : null; + return (this.resolver != null && this.nextChain != null ? + this.resolver.resolveUrlPath(resourcePath, locations, this.nextChain) : null); } } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultResourceTransformerChain.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultResourceTransformerChain.java index 8ef2f0b8c72..8e79e070b21 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultResourceTransformerChain.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/DefaultResourceTransformerChain.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -44,13 +44,12 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain { private final ResourceTransformerChain nextChain; - public DefaultResourceTransformerChain(ResourceResolverChain resolverChain, - @Nullable List transformers) { + public DefaultResourceTransformerChain( + ResourceResolverChain resolverChain, @Nullable List transformers) { Assert.notNull(resolverChain, "ResourceResolverChain is required"); this.resolverChain = resolverChain; - - transformers = transformers != null ? transformers : Collections.emptyList(); + transformers = (transformers != null ? transformers : Collections.emptyList()); DefaultResourceTransformerChain chain = initTransformerChain(resolverChain, new ArrayList<>(transformers)); this.transformer = chain.transformer; this.nextChain = chain.nextChain; @@ -60,9 +59,9 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain { ArrayList transformers) { DefaultResourceTransformerChain chain = new DefaultResourceTransformerChain(resolverChain, null, null); - ListIterator itr = transformers.listIterator(transformers.size()); - while (itr.hasPrevious()) { - chain = new DefaultResourceTransformerChain(resolverChain, itr.previous(), chain); + ListIterator it = transformers.listIterator(transformers.size()); + while (it.hasPrevious()) { + chain = new DefaultResourceTransformerChain(resolverChain, it.previous(), chain); } return chain; } @@ -83,12 +82,10 @@ class DefaultResourceTransformerChain implements ResourceTransformerChain { return this.resolverChain; } - @Override - @SuppressWarnings("ConstantConditions") public Resource transform(HttpServletRequest request, Resource resource) throws IOException { - return transformer != null ? - this.transformer.transform(request, resource, this.nextChain) : resource; + return (this.transformer != null && this.nextChain != null ? + this.transformer.transform(request, resource, this.nextChain) : resource); } } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolverTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolverTests.java index 5fa7d920e83..65016161956 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolverTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolverTests.java @@ -94,7 +94,6 @@ public class ExceptionHandlerExceptionResolverTests { @Test - @SuppressWarnings("ConstantConditions") public void nullHandler() { Object handler = null; this.resolver.afterPropertiesSet(); @@ -103,7 +102,7 @@ public class ExceptionHandlerExceptionResolverTests { } @Test - public void setCustomArgumentResolvers() throws Exception { + public void setCustomArgumentResolvers() { HandlerMethodArgumentResolver resolver = new ServletRequestMethodArgumentResolver(); this.resolver.setCustomArgumentResolvers(Collections.singletonList(resolver)); this.resolver.afterPropertiesSet(); @@ -113,7 +112,7 @@ public class ExceptionHandlerExceptionResolverTests { } @Test - public void setArgumentResolvers() throws Exception { + public void setArgumentResolvers() { HandlerMethodArgumentResolver resolver = new ServletRequestMethodArgumentResolver(); this.resolver.setArgumentResolvers(Collections.singletonList(resolver)); this.resolver.afterPropertiesSet();