From 526d5ba253040f7d279d77eae3ab95098d09cd18 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Sun, 29 Jun 2014 17:44:43 -0400 Subject: [PATCH] Fix warnings from sniff task on master --- .../web/socket/config/WebSocketNamespaceUtils.java | 10 +++++++++- .../annotation/WebSocketConfigurationSupport.java | 10 +++++++++- .../WebSocketMessageBrokerConfigurationSupport.java | 10 +++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/config/WebSocketNamespaceUtils.java b/spring-websocket/src/main/java/org/springframework/web/socket/config/WebSocketNamespaceUtils.java index 3eb522fafca..92e7044ba9d 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/config/WebSocketNamespaceUtils.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/config/WebSocketNamespaceUtils.java @@ -16,6 +16,7 @@ package org.springframework.web.socket.config; +import org.springframework.util.ClassUtils; import org.w3c.dom.Element; import org.springframework.beans.factory.config.BeanDefinition; @@ -40,6 +41,11 @@ import org.springframework.web.socket.sockjs.transport.handler.WebSocketTranspor */ class WebSocketNamespaceUtils { + // Check for setRemoveOnCancelPolicy method - available on JDK 7 and higher + private static boolean hasRemoveOnCancelPolicyMethod = ClassUtils.hasMethod( + WebSocketNamespaceUtils.class, "setRemoveOnCancelPolicy", boolean.class); + + public static RuntimeBeanReference registerHandshakeHandler(Element element, ParserContext parserContext, Object source) { RuntimeBeanReference handlerRef; Element handlerElem = DomUtils.getChildElementByTagName(element, "handshake-handler"); @@ -139,7 +145,9 @@ class WebSocketNamespaceUtils { taskSchedulerDef.setSource(source); taskSchedulerDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); taskSchedulerDef.getPropertyValues().add("poolSize", Runtime.getRuntime().availableProcessors()); - taskSchedulerDef.getPropertyValues().add("removeOnCancelPolicy", true); + if (hasRemoveOnCancelPolicyMethod) { + taskSchedulerDef.getPropertyValues().add("removeOnCancelPolicy", true); + } taskSchedulerDef.getPropertyValues().add("threadNamePrefix", schedulerName + "-"); parserContext.getRegistry().registerBeanDefinition(schedulerName, taskSchedulerDef); parserContext.registerComponent(new BeanComponentDefinition(taskSchedulerDef, schedulerName)); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebSocketConfigurationSupport.java b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebSocketConfigurationSupport.java index 83100eb647d..9e873eb0f0d 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebSocketConfigurationSupport.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebSocketConfigurationSupport.java @@ -18,6 +18,7 @@ package org.springframework.web.socket.config.annotation; import org.springframework.context.annotation.Bean; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; +import org.springframework.util.ClassUtils; import org.springframework.web.servlet.HandlerMapping; import org.springframework.web.servlet.handler.AbstractHandlerMapping; @@ -29,6 +30,11 @@ import org.springframework.web.servlet.handler.AbstractHandlerMapping; */ public class WebSocketConfigurationSupport { + // Check for setRemoveOnCancelPolicy method - available on JDK 7 and higher + private static boolean hasRemoveOnCancelPolicyMethod = ClassUtils.hasMethod( + WebSocketConfigurationSupport.class, "setRemoveOnCancelPolicy", boolean.class); + + @Bean public HandlerMapping webSocketHandlerMapping() { ServletWebSocketHandlerRegistry registry = new ServletWebSocketHandlerRegistry(defaultSockJsTaskScheduler()); @@ -63,7 +69,9 @@ public class WebSocketConfigurationSupport { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setThreadNamePrefix("SockJS-"); scheduler.setPoolSize(Runtime.getRuntime().availableProcessors()); - scheduler.setRemoveOnCancelPolicy(true); + if (hasRemoveOnCancelPolicyMethod) { + scheduler.setRemoveOnCancelPolicy(true); + } return scheduler; } diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupport.java b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupport.java index c14e626259e..52178f6389b 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupport.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/config/annotation/WebSocketMessageBrokerConfigurationSupport.java @@ -21,6 +21,7 @@ import org.springframework.messaging.simp.config.AbstractMessageBrokerConfigurat import org.springframework.messaging.simp.config.MessageBrokerRegistry; import org.springframework.messaging.simp.user.UserSessionRegistry; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; +import org.springframework.util.ClassUtils; import org.springframework.web.servlet.HandlerMapping; import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.messaging.SubProtocolWebSocketHandler; @@ -38,6 +39,11 @@ import org.springframework.web.socket.messaging.SubProtocolWebSocketHandler; */ public abstract class WebSocketMessageBrokerConfigurationSupport extends AbstractMessageBrokerConfiguration { + // Check for setRemoveOnCancelPolicy method - available on JDK 7 and higher + private static boolean hasRemoveOnCancelPolicyMethod = ClassUtils.hasMethod( + WebSocketConfigurationSupport.class, "setRemoveOnCancelPolicy", boolean.class); + + private WebSocketTransportRegistration transportRegistration; @@ -97,7 +103,9 @@ public abstract class WebSocketMessageBrokerConfigurationSupport extends Abstrac public ThreadPoolTaskScheduler messageBrokerSockJsTaskScheduler() { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(Runtime.getRuntime().availableProcessors()); - scheduler.setRemoveOnCancelPolicy(true); + if (hasRemoveOnCancelPolicyMethod) { + scheduler.setRemoveOnCancelPolicy(true); + } scheduler.setThreadNamePrefix("MessageBrokerSockJS-"); return scheduler; }