[shelly] Cancel the init job when the thing handler is disposed (#14290)

Fix #14032

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
This commit is contained in:
lolodomo 2023-01-30 13:24:36 +01:00 committed by Jacob Laursen
parent ad57a0bf56
commit 75dfebf88c

View File

@ -119,6 +119,7 @@ public abstract class ShellyBaseHandler extends BaseThingHandler
private int skipUpdate = 0;
private boolean refreshSettings = false;
private @Nullable ScheduledFuture<?> statusJob;
private @Nullable ScheduledFuture<?> initJob;
/**
* Constructor
@ -171,7 +172,7 @@ public abstract class ShellyBaseHandler extends BaseThingHandler
@Override
public void initialize() {
// start background initialization:
scheduler.schedule(() -> {
initJob = scheduler.schedule(() -> {
boolean start = true;
try {
initializeThingConfig();
@ -1473,7 +1474,12 @@ public abstract class ShellyBaseHandler extends BaseThingHandler
public void stop() {
logger.debug("{}: Shutting down", thingName);
ScheduledFuture<?> job = this.statusJob;
ScheduledFuture<?> job = this.initJob;
if (job != null) {
job.cancel(true);
initJob = null;
}
job = this.statusJob;
if (job != null) {
job.cancel(true);
statusJob = null;