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 4596be012bf..b65a032d726 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 @@ -438,7 +438,12 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler public void setDisconnected() { this.readyConnection.set(null); - this.connection = null; + + TcpConnection, Message> localConnection = this.connection; + if (localConnection != null) { + localConnection.close(); + this.connection = null; + } } @Override @@ -499,7 +504,10 @@ public class StompBrokerRelayMessageHandler extends AbstractBrokerMessageHandler @Override public void run() { - stompConnection.connection.send(MessageBuilder.withPayload(heartbeatPayload).build()); + TcpConnection, Message> connection = stompConnection.connection; + if (connection != null) { + connection.send(MessageBuilder.withPayload(heartbeatPayload).build()); + } } });