If the client is not stopped it will not be garbage collected because the ShutdownThread keeps a reference to the client so it can be stopped on shutdowns.
See: https://github.com/eclipse/jetty.project/blob/jetty-9.4.x/jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/WebSocketClient.java#L420-L433
Signed-off-by: Wouter Born <github@maindrain.net>
rpcSocket.addMessageHandler(this);
initialized = true;
} else {
- if (rpcSocket.isConnected()) {
- logger.debug("{}: Disconnect Rpc Socket on initialize", thingName);
- disconnect();
- }
+ logger.debug("{}: Disconnect Rpc Socket on initialize", thingName);
+ disconnect();
}
}
}
private void disconnect() {
- if (rpcSocket.isConnected()) {
- rpcSocket.disconnect();
- }
+ rpcSocket.disconnect();
}
public Shelly2RpctInterface getRpcHandler() {
s.close(StatusCode.NORMAL, "Socket closed");
session = null;
}
- if (client.isStarted()) {
- client.stop();
- }
+ client.stop();
} catch (Exception e) {
if (e.getCause() instanceof InterruptedException) {
logger.debug("{}: Unable to close socket - interrupted", thingName); // e.g. device was rebooted