From 482eff81e1eb578e7aa987d0e0cc7e272a3b2025 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 15 May 2014 21:46:44 -0400 Subject: [PATCH] Await TcpClient shutdown in STOMP 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 f2a90e713e..be34a11b9d 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 47f1fc0753..22b3aeba0a 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; @@ -373,7 +374,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);