From 673a497923ffd63fee0cbd4b71b11277921b777e Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 15 May 2014 22:00:17 -0400 Subject: [PATCH] Await TcpClient shutdown in STOMP broker relay --- .../simp/broker/AbstractBrokerMessageHandler.java | 10 ++++++++-- .../simp/stomp/StompBrokerRelayMessageHandler.java | 3 ++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/AbstractBrokerMessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/AbstractBrokerMessageHandler.java index 9c02aff9af..04770c8af0 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/AbstractBrokerMessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/broker/AbstractBrokerMessageHandler.java @@ -128,10 +128,13 @@ public abstract class AbstractBrokerMessageHandler public final void start() { synchronized (this.lifecycleMonitor) { if (logger.isDebugEnabled()) { - logger.debug("Starting " + getClass().getSimpleName()); + logger.debug("Starting"); } startInternal(); this.running = true; + if (logger.isDebugEnabled()) { + logger.debug("Started"); + } } } @@ -142,10 +145,13 @@ public abstract class AbstractBrokerMessageHandler public final void stop() { synchronized (this.lifecycleMonitor) { if (logger.isDebugEnabled()) { - logger.debug("Stopping " + getClass().getSimpleName()); + logger.debug("Stopping"); } stopInternal(); this.running = false; + if (logger.isDebugEnabled()) { + logger.debug("Stopped"); + } } } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandler.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandler.java index 3c897f9a05..eed1f76ba6 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandler.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompBrokerRelayMessageHandler.java @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; @@ -384,7 +385,7 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler this.brokerChannel.unsubscribe(this); try { - this.tcpClient.shutdown(); + this.tcpClient.shutdown().get(5000, TimeUnit.MILLISECONDS); } catch (Throwable t) { logger.error("Error while shutting down TCP client", t);