diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/support/StompRelayPubSubMessageHandler.java b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/support/StompRelayPubSubMessageHandler.java index 2e1d31d429..ef2d9eaaea 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/support/StompRelayPubSubMessageHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/support/StompRelayPubSubMessageHandler.java @@ -73,6 +73,8 @@ public class StompRelayPubSubMessageHandler extends AbstractPubSubMessageHandler private MessageConverter payloadConverter; + private Environment environment; + private TcpClient tcpClient; private final Map relaySessions = new ConcurrentHashMap(); @@ -181,9 +183,9 @@ public class StompRelayPubSubMessageHandler extends AbstractPubSubMessageHandler @Override public void start() { synchronized (this.lifecycleMonitor) { - + this.environment = new Environment(); this.tcpClient = new TcpClient.Spec(NettyTcpClient.class) - .using(new Environment()) + .using(this.environment) .codec(new DelimitedCodec((byte) 0, true, StandardCodecs.STRING_CODEC)) .connect(this.relayHost, this.relayPort) .get(); @@ -214,6 +216,7 @@ public class StompRelayPubSubMessageHandler extends AbstractPubSubMessageHandler this.running = false; try { this.tcpClient.close().await(5000, TimeUnit.MILLISECONDS); + this.environment.shutdown(); } catch (InterruptedException e) { // ignore