[shelly] Always try to stop WebSocketClient (#15719)
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>
This commit is contained in:
parent
bef7744c56
commit
72622a1409
@ -141,10 +141,8 @@ public class Shelly2ApiRpc extends Shelly2ApiClient implements ShellyApiInterfac
|
|||||||
rpcSocket.addMessageHandler(this);
|
rpcSocket.addMessageHandler(this);
|
||||||
initialized = true;
|
initialized = true;
|
||||||
} else {
|
} else {
|
||||||
if (rpcSocket.isConnected()) {
|
logger.debug("{}: Disconnect Rpc Socket on initialize", thingName);
|
||||||
logger.debug("{}: Disconnect Rpc Socket on initialize", thingName);
|
disconnect();
|
||||||
disconnect();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1217,9 +1215,7 @@ public class Shelly2ApiRpc extends Shelly2ApiClient implements ShellyApiInterfac
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void disconnect() {
|
private void disconnect() {
|
||||||
if (rpcSocket.isConnected()) {
|
rpcSocket.disconnect();
|
||||||
rpcSocket.disconnect();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Shelly2RpctInterface getRpcHandler() {
|
public Shelly2RpctInterface getRpcHandler() {
|
||||||
|
|||||||
@ -211,9 +211,7 @@ public class Shelly2RpcSocket {
|
|||||||
s.close(StatusCode.NORMAL, "Socket closed");
|
s.close(StatusCode.NORMAL, "Socket closed");
|
||||||
session = null;
|
session = null;
|
||||||
}
|
}
|
||||||
if (client.isStarted()) {
|
client.stop();
|
||||||
client.stop();
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (e.getCause() instanceof InterruptedException) {
|
if (e.getCause() instanceof InterruptedException) {
|
||||||
logger.debug("{}: Unable to close socket - interrupted", thingName); // e.g. device was rebooted
|
logger.debug("{}: Unable to close socket - interrupted", thingName); // e.g. device was rebooted
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user