From: lolodomo Date: Mon, 30 Jan 2023 12:24:36 +0000 (+0100) Subject: [shelly] Cancel the init job when the thing handler is disposed (#14290) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=9a0d0ba4090f5943e330a70623b8a740cd615018;p=openhab-addons.git [shelly] Cancel the init job when the thing handler is disposed (#14290) Fix #14032 Signed-off-by: Laurent Garnier --- diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java index 1df31243e6..c3bd77c340 100755 --- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java +++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java @@ -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;