From 99ae209c250683f48d14b76daaedcfea092d7d8a Mon Sep 17 00:00:00 2001 From: divcon Date: Mon, 21 Nov 2022 00:36:07 +0900 Subject: [PATCH] Apply 'instanceof pattern matching' in spring-web Closes gh-29530 --- ...ttpComponentsClientHttpRequestFactory.java | 8 +- .../HttpComponentsClientHttpConnector.java | 5 +- .../client/reactive/JettyResourceFactory.java | 12 +-- .../http/codec/DecoderHttpMessageReader.java | 11 +-- .../http/codec/EncoderHttpMessageWriter.java | 11 +-- .../http/codec/ResourceHttpMessageWriter.java | 4 +- .../ServerSentEventHttpMessageWriter.java | 15 ++- .../codec/json/AbstractJackson2Decoder.java | 8 +- .../http/codec/json/Jackson2CodecSupport.java | 2 +- .../multipart/MultipartHttpMessageReader.java | 2 +- .../multipart/PartHttpMessageWriter.java | 2 +- .../codec/support/BaseCodecConfigurer.java | 14 ++- .../http/codec/support/BaseDefaultCodecs.java | 93 +++++++++---------- .../json/Jackson2ObjectMapperBuilder.java | 20 ++-- .../xml/MarshallingHttpMessageConverter.java | 4 +- .../server/reactive/ChannelSendOperator.java | 4 +- .../http/server/reactive/DefaultSslInfo.java | 4 +- .../server/reactive/JettyHeadersAdapter.java | 6 +- .../ReactorNetty2ServerHttpRequest.java | 8 +- .../reactive/ReactorServerHttpRequest.java | 8 +- .../reactive/ServerHttpRequestDecorator.java | 8 +- .../reactive/ServerHttpResponseDecorator.java | 8 +- .../web/accept/ContentNegotiationManager.java | 8 +- .../bind/support/WebExchangeDataBinder.java | 2 +- .../client/HttpMessageConverterExtractor.java | 4 +- .../web/client/RestTemplate.java | 22 ++--- .../web/context/ContextCleanupListener.java | 4 +- .../request/RequestContextListener.java | 3 +- ...tractRefreshableWebApplicationContext.java | 4 +- .../support/GenericWebApplicationContext.java | 4 +- .../support/ServletContextAwareProcessor.java | 8 +- .../support/WebApplicationContextUtils.java | 20 ++-- .../support/WebApplicationObjectSupport.java | 8 +- .../jsf/DelegatingNavigationHandlerProxy.java | 4 +- .../web/jsf/FacesContextUtils.java | 12 +-- .../web/method/ControllerAdviceBean.java | 4 +- .../method/annotation/MapMethodProcessor.java | 4 +- .../ModelAttributeMethodProcessor.java | 4 +- .../annotation/ModelMethodProcessor.java | 4 +- .../RequestParamMethodArgumentResolver.java | 12 +-- ...dlerMethodReturnValueHandlerComposite.java | 4 +- .../support/InvocableHandlerMethod.java | 12 +-- .../method/support/ModelAndViewContainer.java | 2 +- .../web/multipart/MultipartFileResource.java | 4 +- .../StandardServletMultipartResolver.java | 4 +- .../server/adapter/WebHttpHandlerBuilder.java | 5 +- .../ResponseStatusExceptionHandler.java | 4 +- .../web/util/ServletRequestPathUtils.java | 4 +- .../web/util/UriComponentsBuilder.java | 8 +- .../pattern/CaptureTheRestPathElement.java | 8 +- 50 files changed, 216 insertions(+), 227 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java index 00d068231dc..46432824dda 100644 --- a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java @@ -202,8 +202,8 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest if (context.getAttribute(HttpClientContext.REQUEST_CONFIG) == null) { // Use request configuration given by the user, when available RequestConfig config = null; - if (httpRequest instanceof Configurable) { - config = ((Configurable) httpRequest).getConfig(); + if (httpRequest instanceof Configurable configurable) { + config = configurable.getConfig(); } if (config == null) { config = createRequestConfig(client); @@ -328,8 +328,8 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest @Override public void destroy() throws Exception { HttpClient httpClient = getHttpClient(); - if (httpClient instanceof Closeable) { - ((Closeable) httpClient).close(); + if (httpClient instanceof Closeable closeable) { + closeable.close(); } } diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/HttpComponentsClientHttpConnector.java b/spring-web/src/main/java/org/springframework/http/client/reactive/HttpComponentsClientHttpConnector.java index 612da6ec348..482647b8e9f 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/HttpComponentsClientHttpConnector.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/HttpComponentsClientHttpConnector.java @@ -159,9 +159,8 @@ public class HttpComponentsClientHttpConnector implements ClientHttpConnector, C @Override public void failed(Exception ex) { Throwable t = ex; - if (t instanceof HttpStreamResetException) { - HttpStreamResetException httpStreamResetException = (HttpStreamResetException) ex; - t = httpStreamResetException.getCause(); + if (t instanceof HttpStreamResetException hsre) { + t = hsre.getCause(); } this.sink.error(t); } diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/JettyResourceFactory.java b/spring-web/src/main/java/org/springframework/http/client/reactive/JettyResourceFactory.java index 415cdfcdbb7..7c939d7e96b 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/JettyResourceFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/JettyResourceFactory.java @@ -131,16 +131,16 @@ public class JettyResourceFactory implements InitializingBean, DisposableBean { } if (this.byteBufferPool == null) { this.byteBufferPool = new MappedByteBufferPool(2048, - this.executor instanceof ThreadPool.SizedThreadPool - ? ((ThreadPool.SizedThreadPool) this.executor).getMaxThreads() / 2 + this.executor instanceof ThreadPool.SizedThreadPool sizedThreadPool + ? sizedThreadPool.getMaxThreads() / 2 : ProcessorUtils.availableProcessors() * 2); } if (this.scheduler == null) { this.scheduler = new ScheduledExecutorScheduler(name + "-scheduler", false); } - if (this.executor instanceof LifeCycle) { - ((LifeCycle)this.executor).start(); + if (this.executor instanceof LifeCycle lifeCycle) { + lifeCycle.start(); } this.scheduler.start(); } @@ -148,8 +148,8 @@ public class JettyResourceFactory implements InitializingBean, DisposableBean { @Override public void destroy() throws Exception { try { - if (this.executor instanceof LifeCycle) { - ((LifeCycle)this.executor).stop(); + if (this.executor instanceof LifeCycle lifeCycle) { + lifeCycle.stop(); } } catch (Throwable ex) { diff --git a/spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java index d3500ad6cc5..fecd84f8df6 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/DecoderHttpMessageReader.java @@ -67,10 +67,10 @@ public class DecoderHttpMessageReader implements HttpMessageReader { } private static void initLogger(Decoder decoder) { - if (decoder instanceof AbstractDecoder && + if (decoder instanceof AbstractDecoder abstractDecoder && decoder.getClass().getName().startsWith("org.springframework.core.codec")) { - Log logger = HttpLogging.forLog(((AbstractDecoder) decoder).getLogger()); - ((AbstractDecoder) decoder).setLogger(logger); + Log logger = HttpLogging.forLog(abstractDecoder.getLogger()); + abstractDecoder.setLogger(logger); } } @@ -163,9 +163,8 @@ public class DecoderHttpMessageReader implements HttpMessageReader { protected Map getReadHints(ResolvableType actualType, ResolvableType elementType, ServerHttpRequest request, ServerHttpResponse response) { - if (this.decoder instanceof HttpMessageDecoder) { - HttpMessageDecoder decoder = (HttpMessageDecoder) this.decoder; - return decoder.getDecodeHints(actualType, elementType, request, response); + if (this.decoder instanceof HttpMessageDecoder httpMethodDecoder) { + return httpMethodDecoder.getDecodeHints(actualType, elementType, request, response); } return Hints.none(); } diff --git a/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java index 9c213a29167..ba35141af43 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/EncoderHttpMessageWriter.java @@ -79,10 +79,10 @@ public class EncoderHttpMessageWriter implements HttpMessageWriter { } private static void initLogger(Encoder encoder) { - if (encoder instanceof AbstractEncoder && + if (encoder instanceof AbstractEncoder abstractEncoder && encoder.getClass().getName().startsWith("org.springframework.core.codec")) { - Log logger = HttpLogging.forLog(((AbstractEncoder) encoder).getLogger()); - ((AbstractEncoder) encoder).setLogger(logger); + Log logger = HttpLogging.forLog(abstractEncoder.getLogger()); + abstractEncoder.setLogger(logger); } } @@ -224,9 +224,8 @@ public class EncoderHttpMessageWriter implements HttpMessageWriter { protected Map getWriteHints(ResolvableType streamType, ResolvableType elementType, @Nullable MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response) { - if (this.encoder instanceof HttpMessageEncoder) { - HttpMessageEncoder encoder = (HttpMessageEncoder) this.encoder; - return encoder.getEncodeHints(streamType, elementType, mediaType, request, response); + if (this.encoder instanceof HttpMessageEncoder httpMessageEncoder) { + return httpMessageEncoder.getEncodeHints(streamType, elementType, mediaType, request, response); } return Hints.none(); } diff --git a/spring-web/src/main/java/org/springframework/http/codec/ResourceHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/ResourceHttpMessageWriter.java index a1ca47d5ab7..9e29096b107 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/ResourceHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/ResourceHttpMessageWriter.java @@ -179,7 +179,7 @@ public class ResourceHttpMessageWriter implements HttpMessageWriter { private static Optional> zeroCopy(Resource resource, @Nullable ResourceRegion region, ReactiveHttpOutputMessage message, Map hints) { - if (message instanceof ZeroCopyHttpOutputMessage && resource.isFile()) { + if (message instanceof ZeroCopyHttpOutputMessage zeroCopyHttpOutputMessage && resource.isFile()) { try { File file = resource.getFile(); long pos = region != null ? region.getPosition() : 0; @@ -188,7 +188,7 @@ public class ResourceHttpMessageWriter implements HttpMessageWriter { String formatted = region != null ? "region " + pos + "-" + (count) + " of " : ""; logger.debug(Hints.getLogPrefix(hints) + "Zero-copy " + formatted + "[" + resource + "]"); } - return Optional.of(((ZeroCopyHttpOutputMessage) message).writeWith(file, pos, count)); + return Optional.of(zeroCopyHttpOutputMessage.writeWith(file, pos, count)); } catch (IOException ex) { // should not happen diff --git a/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageWriter.java index 50ee1864341..13ea0350aaa 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageWriter.java @@ -121,8 +121,8 @@ public class ServerSentEventHttpMessageWriter implements HttpMessageWriter { - ServerSentEvent sse = (element instanceof ServerSentEvent ? - (ServerSentEvent) element : ServerSentEvent.builder().data(element).build()); + ServerSentEvent sse = (element instanceof ServerSentEvent serverSentEvent ? + serverSentEvent : ServerSentEvent.builder().data(element).build()); StringBuilder sb = new StringBuilder(); String id = sse.id(); @@ -150,9 +150,9 @@ public class ServerSentEventHttpMessageWriter implements HttpMessageWriter getEncodeHints(ResolvableType actualType, ResolvableType elementType, @Nullable MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response) { - if (this.encoder instanceof HttpMessageEncoder) { - HttpMessageEncoder encoder = (HttpMessageEncoder) this.encoder; - return encoder.getEncodeHints(actualType, elementType, mediaType, request, response); + if (this.encoder instanceof HttpMessageEncoder httpMessageEncoder) { + return httpMessageEncoder.getEncodeHints(actualType, elementType, mediaType, request, response); } return Hints.none(); } diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Decoder.java b/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Decoder.java index 81d07c93f27..dc320b50cb8 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Decoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Decoder.java @@ -264,12 +264,12 @@ public abstract class AbstractJackson2Decoder extends Jackson2CodecSupport imple } private CodecException processException(IOException ex) { - if (ex instanceof InvalidDefinitionException) { - JavaType type = ((InvalidDefinitionException) ex).getType(); + if (ex instanceof InvalidDefinitionException ide) { + JavaType type = ide.getType(); return new CodecException("Type definition error: " + type, ex); } - if (ex instanceof JsonProcessingException) { - String originalMessage = ((JsonProcessingException) ex).getOriginalMessage(); + if (ex instanceof JsonProcessingException jpe) { + String originalMessage = jpe.getOriginalMessage(); return new DecodingException("JSON decoding error: " + originalMessage, ex); } return new DecodingException("I/O error while parsing input stream", ex); diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java index bdeee7fa647..7292c4ca7fd 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java +++ b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java @@ -255,7 +255,7 @@ public abstract class Jackson2CodecSupport { @Nullable protected MethodParameter getParameter(ResolvableType type) { - return (type.getSource() instanceof MethodParameter ? (MethodParameter) type.getSource() : null); + return (type.getSource() instanceof MethodParameter methodParameter ? methodParameter : null); } @Nullable diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageReader.java index 79f181a1f76..328b7fd091f 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/MultipartHttpMessageReader.java @@ -129,7 +129,7 @@ public class MultipartHttpMessageReader extends LoggingCodecSupport } private List toList(Collection collection) { - return collection instanceof List ? (List) collection : new ArrayList<>(collection); + return collection instanceof List partList ? partList : new ArrayList<>(collection); } } diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/PartHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/PartHttpMessageWriter.java index 3c64a862bfa..309b0fc6a41 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/PartHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/PartHttpMessageWriter.java @@ -81,7 +81,7 @@ public class PartHttpMessageWriter extends MultipartWriterSupport implements Htt String name = part.name(); if (!headers.containsKey(HttpHeaders.CONTENT_DISPOSITION)) { headers.setContentDispositionFormData(name, - (part instanceof FilePart ? ((FilePart) part).filename() : null)); + (part instanceof FilePart filePart ? filePart.filename() : null)); } return Flux.concat( diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java b/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java index 0dcaad99b5e..6882a647fa2 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/BaseCodecConfigurer.java @@ -196,20 +196,18 @@ abstract class BaseCodecConfigurer implements CodecConfigurer { private void addCodec(Object codec, boolean applyDefaultConfig) { - if (codec instanceof Decoder) { - codec = new DecoderHttpMessageReader<>((Decoder) codec); + if (codec instanceof Decoder decoder) { + codec = new DecoderHttpMessageReader<>(decoder); } - else if (codec instanceof Encoder) { - codec = new EncoderHttpMessageWriter<>((Encoder) codec); + else if (codec instanceof Encoder encoder) { + codec = new EncoderHttpMessageWriter<>(encoder); } - if (codec instanceof HttpMessageReader) { - HttpMessageReader reader = (HttpMessageReader) codec; + if (codec instanceof HttpMessageReader reader) { boolean canReadToObject = reader.canRead(ResolvableType.forClass(Object.class), null); (canReadToObject ? this.objectReaders : this.typedReaders).put(reader, applyDefaultConfig); } - else if (codec instanceof HttpMessageWriter) { - HttpMessageWriter writer = (HttpMessageWriter) codec; + else if (codec instanceof HttpMessageWriter writer) { boolean canWriteObject = writer.canWrite(ResolvableType.forClass(Object.class), null); (canWriteObject ? this.objectWriters : this.typedWriters).put(writer, applyDefaultConfig); } diff --git a/spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java b/spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java index 31a6023d2eb..87bca46270a 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java +++ b/spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java @@ -424,13 +424,12 @@ class BaseDefaultCodecs implements CodecConfigurer.DefaultCodecs, CodecConfigure * if configured by the application, to the given codec , including any * codec it contains. */ - @SuppressWarnings("rawtypes") private void initCodec(@Nullable Object codec) { - if (codec instanceof DecoderHttpMessageReader) { - codec = ((DecoderHttpMessageReader) codec).getDecoder(); + if (codec instanceof DecoderHttpMessageReader decoderHttpMessageReader) { + codec = decoderHttpMessageReader.getDecoder(); } - else if (codec instanceof EncoderHttpMessageWriter) { - codec = ((EncoderHttpMessageWriter) codec).getEncoder(); + else if (codec instanceof EncoderHttpMessageWriter encoderHttpMessageWriter) { + codec = encoderHttpMessageWriter.getEncoder(); } if (codec == null) { @@ -439,72 +438,72 @@ class BaseDefaultCodecs implements CodecConfigurer.DefaultCodecs, CodecConfigure Integer size = this.maxInMemorySize; if (size != null) { - if (codec instanceof AbstractDataBufferDecoder) { - ((AbstractDataBufferDecoder) codec).setMaxInMemorySize(size); + if (codec instanceof AbstractDataBufferDecoder abstractDataBufferDecoder) { + abstractDataBufferDecoder.setMaxInMemorySize(size); } if (protobufPresent) { - if (codec instanceof ProtobufDecoder) { - ((ProtobufDecoder) codec).setMaxMessageSize(size); + if (codec instanceof ProtobufDecoder protobufDecoderCodec) { + protobufDecoderCodec.setMaxMessageSize(size); } } if (kotlinSerializationCborPresent) { - if (codec instanceof KotlinSerializationCborDecoder) { - ((KotlinSerializationCborDecoder) codec).setMaxInMemorySize(size); + if (codec instanceof KotlinSerializationCborDecoder kotlinSerializationCborDecoderCodec) { + kotlinSerializationCborDecoderCodec.setMaxInMemorySize(size); } } if (kotlinSerializationJsonPresent) { - if (codec instanceof KotlinSerializationJsonDecoder) { - ((KotlinSerializationJsonDecoder) codec).setMaxInMemorySize(size); + if (codec instanceof KotlinSerializationJsonDecoder kotlinSerializationJsonDecoderCodec) { + kotlinSerializationJsonDecoderCodec.setMaxInMemorySize(size); } } if (kotlinSerializationProtobufPresent) { - if (codec instanceof KotlinSerializationProtobufDecoder) { - ((KotlinSerializationProtobufDecoder) codec).setMaxInMemorySize(size); + if (codec instanceof KotlinSerializationProtobufDecoder kotlinSerializationProtobufDecoderCodec) { + kotlinSerializationProtobufDecoderCodec.setMaxInMemorySize(size); } } if (jackson2Present) { - if (codec instanceof AbstractJackson2Decoder) { - ((AbstractJackson2Decoder) codec).setMaxInMemorySize(size); + if (codec instanceof AbstractJackson2Decoder abstractJackson2Decoder) { + abstractJackson2Decoder.setMaxInMemorySize(size); } } if (jaxb2Present) { - if (codec instanceof Jaxb2XmlDecoder) { - ((Jaxb2XmlDecoder) codec).setMaxInMemorySize(size); + if (codec instanceof Jaxb2XmlDecoder jaxb2XmlDecoder) { + jaxb2XmlDecoder.setMaxInMemorySize(size); } } - if (codec instanceof FormHttpMessageReader) { - ((FormHttpMessageReader) codec).setMaxInMemorySize(size); + if (codec instanceof FormHttpMessageReader formHttpMessageReader) { + formHttpMessageReader.setMaxInMemorySize(size); } - if (codec instanceof ServerSentEventHttpMessageReader) { - ((ServerSentEventHttpMessageReader) codec).setMaxInMemorySize(size); + if (codec instanceof ServerSentEventHttpMessageReader serverSentEventHttpMessageReader) { + serverSentEventHttpMessageReader.setMaxInMemorySize(size); } - if (codec instanceof DefaultPartHttpMessageReader) { - ((DefaultPartHttpMessageReader) codec).setMaxInMemorySize(size); + if (codec instanceof DefaultPartHttpMessageReader defaultPartHttpMessageReader) { + defaultPartHttpMessageReader.setMaxInMemorySize(size); } - if (codec instanceof PartEventHttpMessageReader) { - ((PartEventHttpMessageReader) codec).setMaxInMemorySize(size); + if (codec instanceof PartEventHttpMessageReader partEventHttpMessageReader) { + partEventHttpMessageReader.setMaxInMemorySize(size); } } Boolean enable = this.enableLoggingRequestDetails; if (enable != null) { - if (codec instanceof FormHttpMessageReader) { - ((FormHttpMessageReader) codec).setEnableLoggingRequestDetails(enable); + if (codec instanceof FormHttpMessageReader formHttpMessageReader) { + formHttpMessageReader.setEnableLoggingRequestDetails(enable); } - if (codec instanceof MultipartHttpMessageReader) { - ((MultipartHttpMessageReader) codec).setEnableLoggingRequestDetails(enable); + if (codec instanceof MultipartHttpMessageReader multipartHttpMessageReader) { + multipartHttpMessageReader.setEnableLoggingRequestDetails(enable); } - if (codec instanceof DefaultPartHttpMessageReader) { - ((DefaultPartHttpMessageReader) codec).setEnableLoggingRequestDetails(enable); + if (codec instanceof DefaultPartHttpMessageReader defaultPartHttpMessageReader) { + defaultPartHttpMessageReader.setEnableLoggingRequestDetails(enable); } - if (codec instanceof PartEventHttpMessageReader) { - ((PartEventHttpMessageReader) codec).setEnableLoggingRequestDetails(enable); + if (codec instanceof PartEventHttpMessageReader partEventHttpMessageReader) { + partEventHttpMessageReader.setEnableLoggingRequestDetails(enable); } - if (codec instanceof FormHttpMessageWriter) { - ((FormHttpMessageWriter) codec).setEnableLoggingRequestDetails(enable); + if (codec instanceof FormHttpMessageWriter formHttpMessageWriter) { + formHttpMessageWriter.setEnableLoggingRequestDetails(enable); } - if (codec instanceof MultipartHttpMessageWriter) { - ((MultipartHttpMessageWriter) codec).setEnableLoggingRequestDetails(enable); + if (codec instanceof MultipartHttpMessageWriter multipartHttpMessageWriter) { + multipartHttpMessageWriter.setEnableLoggingRequestDetails(enable); } } @@ -513,17 +512,17 @@ class BaseDefaultCodecs implements CodecConfigurer.DefaultCodecs, CodecConfigure } // Recurse for nested codecs - if (codec instanceof MultipartHttpMessageReader) { - initCodec(((MultipartHttpMessageReader) codec).getPartReader()); + if (codec instanceof MultipartHttpMessageReader multipartHttpMessageReader) { + initCodec(multipartHttpMessageReader.getPartReader()); } - else if (codec instanceof MultipartHttpMessageWriter) { - initCodec(((MultipartHttpMessageWriter) codec).getFormWriter()); + else if (codec instanceof MultipartHttpMessageWriter multipartHttpMessageWriter) { + initCodec(multipartHttpMessageWriter.getFormWriter()); } - else if (codec instanceof ServerSentEventHttpMessageReader) { - initCodec(((ServerSentEventHttpMessageReader) codec).getDecoder()); + else if (codec instanceof ServerSentEventHttpMessageReader serverSentEventHttpMessageReader) { + initCodec(serverSentEventHttpMessageReader.getDecoder()); } - else if (codec instanceof ServerSentEventHttpMessageWriter) { - initCodec(((ServerSentEventHttpMessageWriter) codec).getEncoder()); + else if (codec instanceof ServerSentEventHttpMessageWriter serverSentEventHttpMessageWriter) { + initCodec(serverSentEventHttpMessageWriter.getEncoder()); } } diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java index daaa0815243..260559e8639 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java @@ -819,20 +819,20 @@ public class Jackson2ObjectMapperBuilder { @SuppressWarnings("deprecation") // on Jackson 2.13: configure(MapperFeature, boolean) private void configureFeature(ObjectMapper objectMapper, Object feature, boolean enabled) { - if (feature instanceof JsonParser.Feature) { - objectMapper.configure((JsonParser.Feature) feature, enabled); + if (feature instanceof JsonParser.Feature jsonParserFeature) { + objectMapper.configure(jsonParserFeature, enabled); } - else if (feature instanceof JsonGenerator.Feature) { - objectMapper.configure((JsonGenerator.Feature) feature, enabled); + else if (feature instanceof JsonGenerator.Feature jsonGeneratorFeature) { + objectMapper.configure(jsonGeneratorFeature, enabled); } - else if (feature instanceof SerializationFeature) { - objectMapper.configure((SerializationFeature) feature, enabled); + else if (feature instanceof SerializationFeature serializationFeature) { + objectMapper.configure(serializationFeature, enabled); } - else if (feature instanceof DeserializationFeature) { - objectMapper.configure((DeserializationFeature) feature, enabled); + else if (feature instanceof DeserializationFeature deserializationFeature) { + objectMapper.configure(deserializationFeature, enabled); } - else if (feature instanceof MapperFeature) { - objectMapper.configure((MapperFeature) feature, enabled); + else if (feature instanceof MapperFeature mapperFeature) { + objectMapper.configure(mapperFeature, enabled); } else { throw new FatalBeanException("Unknown feature class: " + feature.getClass().getName()); diff --git a/spring-web/src/main/java/org/springframework/http/converter/xml/MarshallingHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/xml/MarshallingHttpMessageConverter.java index a6d9647e6a1..2f0d768f3c6 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/xml/MarshallingHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/xml/MarshallingHttpMessageConverter.java @@ -69,8 +69,8 @@ public class MarshallingHttpMessageConverter extends AbstractXmlHttpMessageConve public MarshallingHttpMessageConverter(Marshaller marshaller) { Assert.notNull(marshaller, "Marshaller must not be null"); this.marshaller = marshaller; - if (marshaller instanceof Unmarshaller) { - this.unmarshaller = (Unmarshaller) marshaller; + if (marshaller instanceof Unmarshaller um) { + this.unmarshaller = um; } } diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ChannelSendOperator.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ChannelSendOperator.java index da46443edc2..c605931cf61 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ChannelSendOperator.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ChannelSendOperator.java @@ -335,8 +335,8 @@ public class ChannelSendOperator extends Mono implements Scannable { private void releaseCachedItem() { synchronized (this) { Object item = this.item; - if (item instanceof DataBuffer) { - DataBufferUtils.release((DataBuffer) item); + if (item instanceof DataBuffer dataBuffer) { + DataBufferUtils.release(dataBuffer); } this.item = null; } diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/DefaultSslInfo.java b/spring-web/src/main/java/org/springframework/http/server/reactive/DefaultSslInfo.java index 3533ad70c9c..7e41f423b45 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/DefaultSslInfo.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/DefaultSslInfo.java @@ -100,8 +100,8 @@ final class DefaultSslInfo implements SslInfo { List result = new ArrayList<>(certificates.length); for (Certificate certificate : certificates) { - if (certificate instanceof X509Certificate) { - result.add((X509Certificate) certificate); + if (certificate instanceof X509Certificate x509Certificate) { + result.add(x509Certificate); } } return (!result.isEmpty() ? result.toArray(new X509Certificate[0]) : null); diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/JettyHeadersAdapter.java b/spring-web/src/main/java/org/springframework/http/server/reactive/JettyHeadersAdapter.java index 3ddf02b993b..28deaa01b5e 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/JettyHeadersAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/JettyHeadersAdapter.java @@ -105,7 +105,7 @@ class JettyHeadersAdapter implements MultiValueMap { @Override public boolean containsKey(Object key) { - return (key instanceof String && this.headers.contains((String) key)); + return (key instanceof String headerName && this.headers.contains(headerName)); } @Override @@ -134,9 +134,9 @@ class JettyHeadersAdapter implements MultiValueMap { @Nullable @Override public List remove(Object key) { - if (key instanceof String) { + if (key instanceof String headerName) { List oldValues = get(key); - this.headers.remove((String) key); + this.headers.remove(headerName); return oldValues; } return null; diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorNetty2ServerHttpRequest.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorNetty2ServerHttpRequest.java index 7df363091eb..43bc99122b9 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorNetty2ServerHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorNetty2ServerHttpRequest.java @@ -196,8 +196,8 @@ class ReactorNetty2ServerHttpRequest extends AbstractServerHttpRequest { @Override @Nullable protected String initId() { - if (this.request instanceof Connection) { - return ((Connection) this.request).channel().id().asShortText() + + if (this.request instanceof Connection connection) { + return connection.channel().id().asShortText() + "-" + logPrefixIndex.incrementAndGet(); } return null; @@ -212,8 +212,8 @@ class ReactorNetty2ServerHttpRequest extends AbstractServerHttpRequest { if (id != null) { return id; } - if (this.request instanceof Connection) { - return ((Connection) this.request).channel().id().asShortText() + + if (this.request instanceof Connection connection) { + return connection.channel().id().asShortText() + "-" + logPrefixIndex.incrementAndGet(); } return getId(); diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java index 08553cd78da..bc1981af40d 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java @@ -193,8 +193,8 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest { @Override @Nullable protected String initId() { - if (this.request instanceof Connection) { - return ((Connection) this.request).channel().id().asShortText() + + if (this.request instanceof Connection connection) { + return connection.channel().id().asShortText() + "-" + logPrefixIndex.incrementAndGet(); } return null; @@ -209,8 +209,8 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest { if (id != null) { return id; } - if (this.request instanceof Connection) { - return ((Connection) this.request).channel().id().asShortText() + + if (this.request instanceof Connection connection) { + return connection.channel().id().asShortText() + "-" + logPrefixIndex.incrementAndGet(); } return getId(); diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpRequestDecorator.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpRequestDecorator.java index 84f157b3ccc..533126e6831 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpRequestDecorator.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpRequestDecorator.java @@ -123,11 +123,11 @@ public class ServerHttpRequestDecorator implements ServerHttpRequest { * @since 5.3.3 */ public static T getNativeRequest(ServerHttpRequest request) { - if (request instanceof AbstractServerHttpRequest) { - return ((AbstractServerHttpRequest) request).getNativeRequest(); + if (request instanceof AbstractServerHttpRequest abstractServerHttpRequest) { + return abstractServerHttpRequest.getNativeRequest(); } - else if (request instanceof ServerHttpRequestDecorator) { - return getNativeRequest(((ServerHttpRequestDecorator) request).getDelegate()); + else if (request instanceof ServerHttpRequestDecorator serverHttpRequestDecorator) { + return getNativeRequest(serverHttpRequestDecorator.getDelegate()); } else { throw new IllegalArgumentException( diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpResponseDecorator.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpResponseDecorator.java index 87f5a89fbac..e336284d38f 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpResponseDecorator.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpResponseDecorator.java @@ -131,11 +131,11 @@ public class ServerHttpResponseDecorator implements ServerHttpResponse { * @since 5.3.3 */ public static T getNativeResponse(ServerHttpResponse response) { - if (response instanceof AbstractServerHttpResponse) { - return ((AbstractServerHttpResponse) response).getNativeResponse(); + if (response instanceof AbstractServerHttpResponse abstractServerHttpResponse) { + return abstractServerHttpResponse.getNativeResponse(); } - else if (response instanceof ServerHttpResponseDecorator) { - return getNativeResponse(((ServerHttpResponseDecorator) response).getDelegate()); + else if (response instanceof ServerHttpResponseDecorator serverHttpResponseDecorator) { + return getNativeResponse(serverHttpResponseDecorator.getDelegate()); } else { throw new IllegalArgumentException( diff --git a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java index 5f3b76d7a48..987f879f242 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java +++ b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java @@ -74,8 +74,8 @@ public class ContentNegotiationManager implements ContentNegotiationStrategy, Me Assert.notEmpty(strategies, "At least one ContentNegotiationStrategy is expected"); this.strategies.addAll(strategies); for (ContentNegotiationStrategy strategy : this.strategies) { - if (strategy instanceof MediaTypeFileExtensionResolver) { - this.resolvers.add((MediaTypeFileExtensionResolver) strategy); + if (strategy instanceof MediaTypeFileExtensionResolver mediaTypeFileExtensionResolver) { + this.resolvers.add(mediaTypeFileExtensionResolver); } } } @@ -180,8 +180,8 @@ public class ContentNegotiationManager implements ContentNegotiationStrategy, Me public Map getMediaTypeMappings() { Map result = null; for (MediaTypeFileExtensionResolver resolver : this.resolvers) { - if (resolver instanceof MappingMediaTypeFileExtensionResolver) { - Map map = ((MappingMediaTypeFileExtensionResolver) resolver).getMediaTypes(); + if (resolver instanceof MappingMediaTypeFileExtensionResolver mappingMediaTypeFileExtensionResolver) { + Map map = mappingMediaTypeFileExtensionResolver.getMediaTypes(); if (CollectionUtils.isEmpty(map)) { continue; } diff --git a/spring-web/src/main/java/org/springframework/web/bind/support/WebExchangeDataBinder.java b/spring-web/src/main/java/org/springframework/web/bind/support/WebExchangeDataBinder.java index fb57980f97c..75d0894dbb8 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/support/WebExchangeDataBinder.java +++ b/spring-web/src/main/java/org/springframework/web/bind/support/WebExchangeDataBinder.java @@ -122,7 +122,7 @@ public class WebExchangeDataBinder extends WebDataBinder { protected static void addBindValue(Map params, String key, List values) { if (!CollectionUtils.isEmpty(values)) { values = values.stream() - .map(value -> value instanceof FormFieldPart ? ((FormFieldPart) value).value() : value) + .map(value -> value instanceof FormFieldPart formFieldPart ? formFieldPart.value() : value) .toList(); params.put(key, values.size() == 1 ? values.get(0) : values); } diff --git a/spring-web/src/main/java/org/springframework/web/client/HttpMessageConverterExtractor.java b/spring-web/src/main/java/org/springframework/web/client/HttpMessageConverterExtractor.java index cbc47a27287..082f3fe5788 100644 --- a/spring-web/src/main/java/org/springframework/web/client/HttpMessageConverterExtractor.java +++ b/spring-web/src/main/java/org/springframework/web/client/HttpMessageConverterExtractor.java @@ -94,9 +94,7 @@ public class HttpMessageConverterExtractor implements ResponseExtractor { try { for (HttpMessageConverter messageConverter : this.messageConverters) { - if (messageConverter instanceof GenericHttpMessageConverter) { - GenericHttpMessageConverter genericMessageConverter = - (GenericHttpMessageConverter) messageConverter; + if (messageConverter instanceof GenericHttpMessageConverter genericMessageConverter) { if (genericMessageConverter.canRead(this.responseType, null, contentType)) { if (logger.isDebugEnabled()) { ResolvableType resolvableType = ResolvableType.forType(this.responseType); diff --git a/spring-web/src/main/java/org/springframework/web/client/RestTemplate.java b/spring-web/src/main/java/org/springframework/web/client/RestTemplate.java index 45db5197eee..2928c46f817 100644 --- a/spring-web/src/main/java/org/springframework/web/client/RestTemplate.java +++ b/spring-web/src/main/java/org/springframework/web/client/RestTemplate.java @@ -321,8 +321,8 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat * @since 4.3 */ public void setDefaultUriVariables(Map uriVars) { - if (this.uriTemplateHandler instanceof DefaultUriBuilderFactory) { - ((DefaultUriBuilderFactory) this.uriTemplateHandler).setDefaultUriVariables(uriVars); + if (this.uriTemplateHandler instanceof DefaultUriBuilderFactory defaultUriVariables) { + defaultUriVariables.setDefaultUriVariables(uriVars); } else { throw new IllegalArgumentException( @@ -723,8 +723,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat } private URI resolveUrl(RequestEntity entity) { - if (entity instanceof RequestEntity.UriTemplateRequestEntity) { - RequestEntity.UriTemplateRequestEntity ext = (RequestEntity.UriTemplateRequestEntity) entity; + if (entity instanceof RequestEntity.UriTemplateRequestEntity ext) { if (ext.getVars() != null) { return this.uriTemplateHandler.expand(ext.getUriTemplate(), ext.getVars()); } @@ -1003,19 +1002,18 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat } private boolean canReadResponse(Type responseType, HttpMessageConverter converter) { - Class responseClass = (responseType instanceof Class ? (Class) responseType : null); + Class responseClass = (responseType instanceof Class type ? type : null); if (responseClass != null) { return converter.canRead(responseClass, null); } - else if (converter instanceof GenericHttpMessageConverter) { - GenericHttpMessageConverter genericConverter = (GenericHttpMessageConverter) converter; + else if (converter instanceof GenericHttpMessageConverter genericConverter) { return genericConverter.canRead(responseType, null, null); } return false; } private Stream getSupportedMediaTypes(Type type, HttpMessageConverter converter) { - Type rawType = (type instanceof ParameterizedType ? ((ParameterizedType) type).getRawType() : type); + Type rawType = (type instanceof ParameterizedType parameterizedType ? parameterizedType.getRawType() : type); Class clazz = (rawType instanceof Class ? (Class) rawType : null); return (clazz != null ? converter.getSupportedMediaTypes(clazz) : converter.getSupportedMediaTypes()) .stream() @@ -1042,8 +1040,8 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat public HttpEntityRequestCallback(@Nullable Object requestBody, @Nullable Type responseType) { super(responseType); - if (requestBody instanceof HttpEntity) { - this.requestEntity = (HttpEntity) requestBody; + if (requestBody instanceof HttpEntity httpEntity) { + this.requestEntity = httpEntity; } else if (requestBody != null) { this.requestEntity = new HttpEntity<>(requestBody); @@ -1070,8 +1068,8 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat } else { Class requestBodyClass = requestBody.getClass(); - Type requestBodyType = (this.requestEntity instanceof RequestEntity ? - ((RequestEntity)this.requestEntity).getType() : requestBodyClass); + Type requestBodyType = (this.requestEntity instanceof RequestEntity re ? + re.getType() : requestBodyClass); HttpHeaders httpHeaders = httpRequest.getHeaders(); HttpHeaders requestHeaders = this.requestEntity.getHeaders(); MediaType requestContentType = requestHeaders.getContentType(); diff --git a/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java b/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java index 02034d0a19f..b390738b7ed 100644 --- a/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java +++ b/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java @@ -65,9 +65,9 @@ public class ContextCleanupListener implements ServletContextListener { String attrName = attrNames.nextElement(); if (attrName.startsWith("org.springframework.")) { Object attrValue = servletContext.getAttribute(attrName); - if (attrValue instanceof DisposableBean) { + if (attrValue instanceof DisposableBean disposableBean) { try { - ((DisposableBean) attrValue).destroy(); + disposableBean.destroy(); } catch (Throwable ex) { if (logger.isWarnEnabled()) { diff --git a/spring-web/src/main/java/org/springframework/web/context/request/RequestContextListener.java b/spring-web/src/main/java/org/springframework/web/context/request/RequestContextListener.java index d6d1e3c3e80..876cc7e4f54 100644 --- a/spring-web/src/main/java/org/springframework/web/context/request/RequestContextListener.java +++ b/spring-web/src/main/java/org/springframework/web/context/request/RequestContextListener.java @@ -51,11 +51,10 @@ public class RequestContextListener implements ServletRequestListener { @Override public void requestInitialized(ServletRequestEvent requestEvent) { - if (!(requestEvent.getServletRequest() instanceof HttpServletRequest)) { + if (!(requestEvent.getServletRequest() instanceof HttpServletRequest request)) { throw new IllegalArgumentException( "Request is not an HttpServletRequest: " + requestEvent.getServletRequest()); } - HttpServletRequest request = (HttpServletRequest) requestEvent.getServletRequest(); ServletRequestAttributes attributes = new ServletRequestAttributes(request); request.setAttribute(REQUEST_ATTRIBUTES_ATTRIBUTE, attributes); LocaleContextHolder.setLocale(request.getLocale()); diff --git a/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java b/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java index da82e189b30..34cc8fe18ee 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java @@ -209,8 +209,8 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR @Override protected void initPropertySources() { ConfigurableEnvironment env = getEnvironment(); - if (env instanceof ConfigurableWebEnvironment) { - ((ConfigurableWebEnvironment) env).initPropertySources(this.servletContext, this.servletConfig); + if (env instanceof ConfigurableWebEnvironment configurableWebEnv) { + configurableWebEnv.initPropertySources(this.servletContext, this.servletConfig); } } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java b/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java index 87009a3ca5a..577fd7d482c 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/GenericWebApplicationContext.java @@ -208,8 +208,8 @@ public class GenericWebApplicationContext extends GenericApplicationContext @Override protected void initPropertySources() { ConfigurableEnvironment env = getEnvironment(); - if (env instanceof ConfigurableWebEnvironment) { - ((ConfigurableWebEnvironment) env).initPropertySources(this.servletContext, null); + if (env instanceof ConfigurableWebEnvironment configurableWebEnv) { + configurableWebEnv.initPropertySources(this.servletContext, null); } } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java index 239edb45f6e..850a5187058 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java @@ -104,11 +104,11 @@ public class ServletContextAwareProcessor implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { - if (getServletContext() != null && bean instanceof ServletContextAware) { - ((ServletContextAware) bean).setServletContext(getServletContext()); + if (getServletContext() != null && bean instanceof ServletContextAware servletContextAware) { + servletContextAware.setServletContext(getServletContext()); } - if (getServletConfig() != null && bean instanceof ServletConfigAware) { - ((ServletConfigAware) bean).setServletConfig(getServletConfig()); + if (getServletConfig() != null && bean instanceof ServletConfigAware servletConfigAware) { + servletConfigAware.setServletConfig(getServletConfig()); } return bean; } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationContextUtils.java b/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationContextUtils.java index cf43e49a530..22917a4bab0 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationContextUtils.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationContextUtils.java @@ -114,19 +114,19 @@ public abstract class WebApplicationContextUtils { if (attr == null) { return null; } - if (attr instanceof RuntimeException) { - throw (RuntimeException) attr; + if (attr instanceof RuntimeException re) { + throw re; } - if (attr instanceof Error) { - throw (Error) attr; + if (attr instanceof Error error) { + throw error; } - if (attr instanceof Exception) { - throw new IllegalStateException((Exception) attr); + if (attr instanceof Exception ex) { + throw new IllegalStateException(ex); } - if (!(attr instanceof WebApplicationContext)) { + if (!(attr instanceof WebApplicationContext wac)) { throw new IllegalStateException("Context attribute is not of type WebApplicationContext: " + attr); } - return (WebApplicationContext) attr; + return wac; } /** @@ -311,10 +311,10 @@ public abstract class WebApplicationContextUtils { */ private static ServletRequestAttributes currentRequestAttributes() { RequestAttributes requestAttr = RequestContextHolder.currentRequestAttributes(); - if (!(requestAttr instanceof ServletRequestAttributes)) { + if (!(requestAttr instanceof ServletRequestAttributes servletRequestAttributes)) { throw new IllegalStateException("Current request is not a servlet request"); } - return (ServletRequestAttributes) requestAttr; + return servletRequestAttributes; } diff --git a/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationObjectSupport.java b/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationObjectSupport.java index 10d22569ccc..6f235037f59 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationObjectSupport.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/WebApplicationObjectSupport.java @@ -76,8 +76,8 @@ public abstract class WebApplicationObjectSupport extends ApplicationObjectSuppo @Override protected void initApplicationContext(ApplicationContext context) { super.initApplicationContext(context); - if (this.servletContext == null && context instanceof WebApplicationContext) { - this.servletContext = ((WebApplicationContext) context).getServletContext(); + if (this.servletContext == null && context instanceof WebApplicationContext wac) { + this.servletContext = wac.getServletContext(); if (this.servletContext != null) { initServletContext(this.servletContext); } @@ -108,8 +108,8 @@ public abstract class WebApplicationObjectSupport extends ApplicationObjectSuppo @Nullable protected final WebApplicationContext getWebApplicationContext() throws IllegalStateException { ApplicationContext ctx = getApplicationContext(); - if (ctx instanceof WebApplicationContext) { - return (WebApplicationContext) getApplicationContext(); + if (ctx instanceof WebApplicationContext wac) { + return wac; } else if (isContextRequired()) { throw new IllegalStateException("WebApplicationObjectSupport instance [" + this + diff --git a/spring-web/src/main/java/org/springframework/web/jsf/DelegatingNavigationHandlerProxy.java b/spring-web/src/main/java/org/springframework/web/jsf/DelegatingNavigationHandlerProxy.java index e1369563e9f..d722e4fd162 100644 --- a/spring-web/src/main/java/org/springframework/web/jsf/DelegatingNavigationHandlerProxy.java +++ b/spring-web/src/main/java/org/springframework/web/jsf/DelegatingNavigationHandlerProxy.java @@ -110,8 +110,8 @@ public class DelegatingNavigationHandlerProxy extends NavigationHandler { @Override public void handleNavigation(FacesContext facesContext, String fromAction, String outcome) { NavigationHandler handler = getDelegate(facesContext); - if (handler instanceof DecoratingNavigationHandler) { - ((DecoratingNavigationHandler) handler).handleNavigation( + if (handler instanceof DecoratingNavigationHandler decoratingNavigationHandler) { + decoratingNavigationHandler.handleNavigation( facesContext, fromAction, outcome, this.originalNavigationHandler); } else { diff --git a/spring-web/src/main/java/org/springframework/web/jsf/FacesContextUtils.java b/spring-web/src/main/java/org/springframework/web/jsf/FacesContextUtils.java index 05c2addf4df..3851a0b8bf0 100644 --- a/spring-web/src/main/java/org/springframework/web/jsf/FacesContextUtils.java +++ b/spring-web/src/main/java/org/springframework/web/jsf/FacesContextUtils.java @@ -55,16 +55,16 @@ public abstract class FacesContextUtils { if (attr == null) { return null; } - if (attr instanceof RuntimeException) { - throw (RuntimeException) attr; + if (attr instanceof RuntimeException re) { + throw re; } - if (attr instanceof Error) { - throw (Error) attr; + if (attr instanceof Error error) { + throw error; } - if (!(attr instanceof WebApplicationContext)) { + if (!(attr instanceof WebApplicationContext wac)) { throw new IllegalStateException("Root context attribute is not of type WebApplicationContext: " + attr); } - return (WebApplicationContext) attr; + return wac; } /** diff --git a/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java b/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java index f9b353ac0c2..92a6189b6eb 100644 --- a/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java +++ b/spring-web/src/main/java/org/springframework/web/method/ControllerAdviceBean.java @@ -160,8 +160,8 @@ public class ControllerAdviceBean implements Ordered { if (this.order == null) { String beanName = null; Object resolvedBean = null; - if (this.beanFactory != null && this.beanOrName instanceof String) { - beanName = (String) this.beanOrName; + if (this.beanFactory != null && this.beanOrName instanceof String stringBeanName) { + beanName = stringBeanName; String targetBeanName = ScopedProxyUtils.getTargetBeanName(beanName); boolean isScopedProxy = this.beanFactory.containsBean(targetBeanName); // Avoid eager @ControllerAdvice bean resolution for scoped proxies, diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/MapMethodProcessor.java b/spring-web/src/main/java/org/springframework/web/method/annotation/MapMethodProcessor.java index 165cf32e487..9a9d5be20d6 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/MapMethodProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/MapMethodProcessor.java @@ -65,8 +65,8 @@ public class MapMethodProcessor implements HandlerMethodArgumentResolver, Handle public void handleReturnValue(@Nullable Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { - if (returnValue instanceof Map){ - mavContainer.addAllAttributes((Map) returnValue); + if (returnValue instanceof Map returnValueMap) { + mavContainer.addAllAttributes(returnValueMap); } else if (returnValue != null) { // should not happen diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java index 78ad6ede2a7..d398e39a9c1 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelAttributeMethodProcessor.java @@ -406,9 +406,9 @@ public class ModelAttributeMethodProcessor implements HandlerMethodArgumentResol Object[] validationHints = ValidationAnnotationUtils.determineValidationHints(ann); if (validationHints != null) { for (Validator validator : binder.getValidators()) { - if (validator instanceof SmartValidator) { + if (validator instanceof SmartValidator smartValidator) { try { - ((SmartValidator) validator).validateValue(targetType, fieldName, value, + smartValidator.validateValue(targetType, fieldName, value, binder.getBindingResult(), validationHints); } catch (IllegalArgumentException ex) { diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelMethodProcessor.java b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelMethodProcessor.java index 3915259ae7e..3a2f397da1b 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/ModelMethodProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/ModelMethodProcessor.java @@ -65,8 +65,8 @@ public class ModelMethodProcessor implements HandlerMethodArgumentResolver, Hand if (returnValue == null) { return; } - else if (returnValue instanceof Model) { - mavContainer.addAllAttributes(((Model) returnValue).asMap()); + else if (returnValue instanceof Model model) { + mavContainer.addAllAttributes(model.asMap()); } else { // should not happen diff --git a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolver.java b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolver.java index 265d8cae47a..23e8e33d663 100644 --- a/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolver.java +++ b/spring-web/src/main/java/org/springframework/web/method/annotation/RequestParamMethodArgumentResolver.java @@ -234,8 +234,8 @@ public class RequestParamMethodArgumentResolver extends AbstractNamedValueMethod Assert.state(name != null, "Unresolvable parameter name"); parameter = parameter.nestedIfOptional(); - if (value instanceof Optional) { - value = ((Optional) value).orElse(null); + if (value instanceof Optional optionalValue) { + value = optionalValue.orElse(null); } if (value == null) { @@ -245,8 +245,8 @@ public class RequestParamMethodArgumentResolver extends AbstractNamedValueMethod } builder.queryParam(name); } - else if (value instanceof Collection) { - for (Object element : (Collection) value) { + else if (value instanceof Collection collectionValue) { + for (Object element : collectionValue) { element = formatUriValue(conversionService, TypeDescriptor.nested(parameter, 1), element); builder.queryParam(name, element); } @@ -263,8 +263,8 @@ public class RequestParamMethodArgumentResolver extends AbstractNamedValueMethod if (value == null) { return null; } - else if (value instanceof String) { - return (String) value; + else if (value instanceof String stringValue) { + return stringValue; } else if (cs != null) { return (String) cs.convert(value, sourceType, STRING_TYPE_DESCRIPTOR); diff --git a/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite.java b/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite.java index 301f060916a..7fb074f363a 100644 --- a/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite.java +++ b/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite.java @@ -94,8 +94,8 @@ public class HandlerMethodReturnValueHandlerComposite implements HandlerMethodRe private boolean isAsyncReturnValue(@Nullable Object value, MethodParameter returnType) { for (HandlerMethodReturnValueHandler handler : this.returnValueHandlers) { - if (handler instanceof AsyncHandlerMethodReturnValueHandler && - ((AsyncHandlerMethodReturnValueHandler) handler).isAsyncReturnValue(value, returnType)) { + if (handler instanceof AsyncHandlerMethodReturnValueHandler asyncHandlerMethodReturnValueHandler && + asyncHandlerMethodReturnValueHandler.isAsyncReturnValue(value, returnType)) { return true; } } diff --git a/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java b/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java index b662d31301d..86f23d60a40 100644 --- a/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java +++ b/spring-web/src/main/java/org/springframework/web/method/support/InvocableHandlerMethod.java @@ -215,14 +215,14 @@ public class InvocableHandlerMethod extends HandlerMethod { catch (InvocationTargetException ex) { // Unwrap for HandlerExceptionResolvers ... Throwable targetException = ex.getTargetException(); - if (targetException instanceof RuntimeException) { - throw (RuntimeException) targetException; + if (targetException instanceof RuntimeException re) { + throw re; } - else if (targetException instanceof Error) { - throw (Error) targetException; + else if (targetException instanceof Error error) { + throw error; } - else if (targetException instanceof Exception) { - throw (Exception) targetException; + else if (targetException instanceof Exception exception) { + throw exception; } else { throw new IllegalStateException(formatInvokeError("Invocation failure", args), targetException); diff --git a/spring-web/src/main/java/org/springframework/web/method/support/ModelAndViewContainer.java b/spring-web/src/main/java/org/springframework/web/method/support/ModelAndViewContainer.java index 344a2c267c6..15f9ebed290 100644 --- a/spring-web/src/main/java/org/springframework/web/method/support/ModelAndViewContainer.java +++ b/spring-web/src/main/java/org/springframework/web/method/support/ModelAndViewContainer.java @@ -106,7 +106,7 @@ public class ModelAndViewContainer { */ @Nullable public String getViewName() { - return (this.view instanceof String ? (String) this.view : null); + return (this.view instanceof String stringView ? stringView : null); } /** diff --git a/spring-web/src/main/java/org/springframework/web/multipart/MultipartFileResource.java b/spring-web/src/main/java/org/springframework/web/multipart/MultipartFileResource.java index 1e98350ddc4..ef2ed9bbac6 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/MultipartFileResource.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/MultipartFileResource.java @@ -89,8 +89,8 @@ class MultipartFileResource extends AbstractResource { @Override public boolean equals(@Nullable Object other) { - return (this == other || (other instanceof MultipartFileResource && - ((MultipartFileResource) other).multipartFile.equals(this.multipartFile))); + return (this == other || (other instanceof MultipartFileResource multipartFileResource && + multipartFileResource.multipartFile.equals(this.multipartFile))); } @Override diff --git a/spring-web/src/main/java/org/springframework/web/multipart/support/StandardServletMultipartResolver.java b/spring-web/src/main/java/org/springframework/web/multipart/support/StandardServletMultipartResolver.java index 7888b8bde0f..c7bceefc28e 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/support/StandardServletMultipartResolver.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/support/StandardServletMultipartResolver.java @@ -114,8 +114,8 @@ public class StandardServletMultipartResolver implements MultipartResolver { @Override public void cleanupMultipart(MultipartHttpServletRequest request) { - if (!(request instanceof AbstractMultipartHttpServletRequest) || - ((AbstractMultipartHttpServletRequest) request).isResolved()) { + if (!(request instanceof AbstractMultipartHttpServletRequest abstractMultipartHttpServletRequest) || + abstractMultipartHttpServletRequest.isResolved()) { // To be on the safe side: explicitly delete the parts, // but only actual file parts (for Resin compatibility) try { diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java b/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java index ab1b418f677..6f16e0d9458 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java @@ -247,8 +247,9 @@ public final class WebHttpHandlerBuilder { List filtersToUse = this.filters.stream() .peek(filter -> { - if (filter instanceof ForwardedHeaderTransformer && this.forwardedHeaderTransformer == null) { - this.forwardedHeaderTransformer = (ForwardedHeaderTransformer) filter; + if (filter instanceof ForwardedHeaderTransformer forwardedHeaderTransformerFilter + && this.forwardedHeaderTransformer == null) { + this.forwardedHeaderTransformer = forwardedHeaderTransformerFilter; } }) .filter(filter -> !(filter instanceof ForwardedHeaderTransformer)) diff --git a/spring-web/src/main/java/org/springframework/web/server/handler/ResponseStatusExceptionHandler.java b/spring-web/src/main/java/org/springframework/web/server/handler/ResponseStatusExceptionHandler.java index cf1337781d5..e5d17180413 100644 --- a/spring-web/src/main/java/org/springframework/web/server/handler/ResponseStatusExceptionHandler.java +++ b/spring-web/src/main/java/org/springframework/web/server/handler/ResponseStatusExceptionHandler.java @@ -95,8 +95,8 @@ public class ResponseStatusExceptionHandler implements WebExceptionHandler { int code = (statusCode != null ? statusCode.value() : determineRawStatusCode(ex)); if (code != -1) { if (response.setStatusCode(statusCode)) { - if (ex instanceof ResponseStatusException) { - ((ResponseStatusException) ex).getHeaders().forEach((name, values) -> + if (ex instanceof ResponseStatusException responseStatusException) { + responseStatusException.getHeaders().forEach((name, values) -> values.forEach(value -> response.getHeaders().add(name, value))); } result = true; diff --git a/spring-web/src/main/java/org/springframework/web/util/ServletRequestPathUtils.java b/spring-web/src/main/java/org/springframework/web/util/ServletRequestPathUtils.java index c57bd4b5e4d..3cf02804eae 100644 --- a/spring-web/src/main/java/org/springframework/web/util/ServletRequestPathUtils.java +++ b/spring-web/src/main/java/org/springframework/web/util/ServletRequestPathUtils.java @@ -159,8 +159,8 @@ public abstract class ServletRequestPathUtils { */ public static String getCachedPathValue(ServletRequest request) { Object path = getCachedPath(request); - if (path instanceof PathContainer) { - String value = ((PathContainer) path).value(); + if (path instanceof PathContainer pathContainer) { + String value = pathContainer.value(); path = UrlPathHelper.defaultInstance.removeSemicolonContent(value); } return (String) path; diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java index 38762811619..34b45c1ab9e 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java @@ -726,8 +726,8 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable { @Nullable private String getQueryParamValue(@Nullable Object value) { if (value != null) { - return (value instanceof Optional ? - ((Optional) value).map(Object::toString).orElse(null) : + return (value instanceof Optional optionalValue ? + optionalValue.map(Object::toString).orElse(null) : value.toString()); } return null; @@ -741,8 +741,8 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable { @Override public UriComponentsBuilder queryParamIfPresent(String name, Optional value) { value.ifPresent(o -> { - if (o instanceof Collection) { - queryParam(name, (Collection) o); + if (o instanceof Collection elements) { + queryParam(name, elements); } else { queryParam(name, o); diff --git a/spring-web/src/main/java/org/springframework/web/util/pattern/CaptureTheRestPathElement.java b/spring-web/src/main/java/org/springframework/web/util/pattern/CaptureTheRestPathElement.java index 3ee4ff2ebac..1097e447f6f 100644 --- a/spring-web/src/main/java/org/springframework/web/util/pattern/CaptureTheRestPathElement.java +++ b/spring-web/src/main/java/org/springframework/web/util/pattern/CaptureTheRestPathElement.java @@ -66,8 +66,8 @@ class CaptureTheRestPathElement extends PathElement { MultiValueMap parametersCollector = null; for (int i = pathIndex; i < matchingContext.pathLength; i++) { Element element = matchingContext.pathElements.get(i); - if (element instanceof PathSegment) { - MultiValueMap parameters = ((PathSegment) element).parameters(); + if (element instanceof PathSegment pathSegment) { + MultiValueMap parameters = pathSegment.parameters(); if (!parameters.isEmpty()) { if (parametersCollector == null) { parametersCollector = new LinkedMultiValueMap<>(); @@ -86,8 +86,8 @@ class CaptureTheRestPathElement extends PathElement { StringBuilder sb = new StringBuilder(); for (int i = fromSegment, max = pathElements.size(); i < max; i++) { Element element = pathElements.get(i); - if (element instanceof PathSegment) { - sb.append(((PathSegment)element).valueToMatch()); + if (element instanceof PathSegment pathSegment) { + sb.append(pathSegment.valueToMatch()); } else { sb.append(element.value());