From 97bbec7ac0695780ccad3575d3e6a55bc78ceb6b Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Tue, 22 Dec 2020 11:25:37 +1100 Subject: [PATCH] Issue #5832 - deregister ShutdownThread for WebSocketClientContainer Signed-off-by: Lachlan Roberts --- ...JavaxWebSocketClientContainerProvider.java | 21 ++++++------------- .../JavaxWebSocketClientContainer.java | 9 ++++++++ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/jetty-websocket/websocket-javax-client/src/main/java/org/eclipse/jetty/websocket/javax/client/JavaxWebSocketClientContainerProvider.java b/jetty-websocket/websocket-javax-client/src/main/java/org/eclipse/jetty/websocket/javax/client/JavaxWebSocketClientContainerProvider.java index 3f00b2157735..6ac2a48d47cb 100644 --- a/jetty-websocket/websocket-javax-client/src/main/java/org/eclipse/jetty/websocket/javax/client/JavaxWebSocketClientContainerProvider.java +++ b/jetty-websocket/websocket-javax-client/src/main/java/org/eclipse/jetty/websocket/javax/client/JavaxWebSocketClientContainerProvider.java @@ -17,7 +17,6 @@ import javax.websocket.WebSocketContainer; import org.eclipse.jetty.util.component.LifeCycle; -import org.eclipse.jetty.util.thread.ShutdownThread; import org.eclipse.jetty.websocket.javax.client.internal.JavaxWebSocketClientContainer; /** @@ -59,22 +58,14 @@ protected WebSocketContainer getContainer() // TODO: do we want to provide a non-standard way to configure to always return the same clientContainer based on a config somewhere? (system.property?) JavaxWebSocketClientContainer clientContainer = new JavaxWebSocketClientContainer(); - - // Register as JVM runtime shutdown hook? - ShutdownThread.register(clientContainer); - - if (!clientContainer.isStarted()) + try { - try - { - clientContainer.start(); - } - catch (Exception e) - { - throw new RuntimeException("Unable to start Client Container", e); - } + clientContainer.start(); + } + catch (Exception e) + { + throw new RuntimeException("Unable to start Client Container", e); } - return clientContainer; } } diff --git a/jetty-websocket/websocket-javax-client/src/main/java/org/eclipse/jetty/websocket/javax/client/internal/JavaxWebSocketClientContainer.java b/jetty-websocket/websocket-javax-client/src/main/java/org/eclipse/jetty/websocket/javax/client/internal/JavaxWebSocketClientContainer.java index c22f991e1679..f96863b22685 100644 --- a/jetty-websocket/websocket-javax-client/src/main/java/org/eclipse/jetty/websocket/javax/client/internal/JavaxWebSocketClientContainer.java +++ b/jetty-websocket/websocket-javax-client/src/main/java/org/eclipse/jetty/websocket/javax/client/internal/JavaxWebSocketClientContainer.java @@ -33,6 +33,7 @@ import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.util.annotation.ManagedObject; +import org.eclipse.jetty.util.thread.ShutdownThread; import org.eclipse.jetty.websocket.core.WebSocketComponents; import org.eclipse.jetty.websocket.core.client.WebSocketCoreClient; import org.eclipse.jetty.websocket.core.exception.InvalidWebSocketException; @@ -59,6 +60,14 @@ public class JavaxWebSocketClientContainer extends JavaxWebSocketContainer imple public JavaxWebSocketClientContainer() { this(new WebSocketComponents()); + ShutdownThread.register(this); + } + + @Override + protected void doStop() throws Exception + { + super.doStop(); + ShutdownThread.deregister(this); } /**