diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/config/StompBrokerRelayRegistration.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/config/StompBrokerRelayRegistration.java index 57e78a67119..823302f572b 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/config/StompBrokerRelayRegistration.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/config/StompBrokerRelayRegistration.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2020 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. @@ -223,8 +223,8 @@ public class StompBrokerRelayRegistration extends AbstractBrokerRegistration { } + @Override protected StompBrokerRelayMessageHandler getMessageHandler(SubscribableChannel brokerChannel) { - StompBrokerRelayMessageHandler handler = new StompBrokerRelayMessageHandler( getClientInboundChannel(), getClientOutboundChannel(), brokerChannel, getDestinationPrefixes()); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java index c4690684655..3ec8bc85084 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java @@ -157,7 +157,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser { ClassUtils.isPresent("javax.validation.Validator", AnnotationDrivenBeanDefinitionParser.class.getClassLoader()); - private static boolean romePresent = + private static final boolean romePresent = ClassUtils.isPresent("com.rometools.rome.feed.WireFeed", AnnotationDrivenBeanDefinitionParser.class.getClassLoader()); @@ -197,7 +197,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser { handlerMappingDef.getPropertyValues().add("contentNegotiationManager", contentNegotiationManager); if (element.hasAttribute("enable-matrix-variables")) { - Boolean enableMatrixVariables = Boolean.valueOf(element.getAttribute("enable-matrix-variables")); + boolean enableMatrixVariables = Boolean.parseBoolean(element.getAttribute("enable-matrix-variables")); handlerMappingDef.getPropertyValues().add("removeSemicolonContent", !enableMatrixVariables); } else if (element.hasAttribute("enableMatrixVariables")) { @@ -545,7 +545,7 @@ class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParser { } } - if (convertersElement == null || Boolean.valueOf(convertersElement.getAttribute("register-defaults"))) { + if (convertersElement == null || Boolean.parseBoolean(convertersElement.getAttribute("register-defaults"))) { messageConverters.setSource(source); messageConverters.add(createConverterDefinition(ByteArrayHttpMessageConverter.class, source)); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java index 8c3540e2450..75875105bd4 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2020 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. @@ -80,7 +80,7 @@ class ResourcesBeanDefinitionParser implements BeanDefinitionParser { private static final String RESOURCE_URL_PROVIDER = "mvcResourceUrlProvider"; - private static final boolean isWebJarsAssetLocatorPresent = ClassUtils.isPresent( + private static final boolean webJarsPresent = ClassUtils.isPresent( "org.webjars.WebJarAssetLocator", ResourcesBeanDefinitionParser.class.getClassLoader()); @@ -329,7 +329,7 @@ class ResourcesBeanDefinitionParser implements BeanDefinitionParser { } if (isAutoRegistration) { - if (isWebJarsAssetLocatorPresent) { + if (webJarsPresent) { RootBeanDefinition webJarsResolverDef = new RootBeanDefinition(WebJarsResourceResolver.class); webJarsResolverDef.setSource(source); webJarsResolverDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketSession.java index d8491313146..e4212a426fa 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketSession.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2020 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. @@ -114,6 +114,12 @@ public interface WebSocketSession extends Closeable { /** * Send a WebSocket message: either {@link TextMessage} or {@link BinaryMessage}. + *
Note: The underlying standard WebSocket session (JSR-356) does + * not allow concurrent sending. Therefore sending must be synchronized. To ensure + * that, one option is to wrap the {@code WebSocketSession} with the + * {@link org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator + * ConcurrentWebSocketSessionDecorator}. + * @see org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator */ void sendMessage(WebSocketMessage> message) throws IOException;