From d33f6916d217647744832206fa5ab349e4948b76 Mon Sep 17 00:00:00 2001 From: lolodomo Date: Mon, 20 Feb 2023 20:28:27 +0100 Subject: [PATCH] [nanoleaf] Stop the HTTP client when disposing the thing handler (#14459) Signed-off-by: Laurent Garnier --- .../internal/handler/NanoleafControllerHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bundles/org.openhab.binding.nanoleaf/src/main/java/org/openhab/binding/nanoleaf/internal/handler/NanoleafControllerHandler.java b/bundles/org.openhab.binding.nanoleaf/src/main/java/org/openhab/binding/nanoleaf/internal/handler/NanoleafControllerHandler.java index 49953a787..304f9f62a 100644 --- a/bundles/org.openhab.binding.nanoleaf/src/main/java/org/openhab/binding/nanoleaf/internal/handler/NanoleafControllerHandler.java +++ b/bundles/org.openhab.binding.nanoleaf/src/main/java/org/openhab/binding/nanoleaf/internal/handler/NanoleafControllerHandler.java @@ -91,6 +91,7 @@ import org.openhab.core.thing.ThingStatusDetail; import org.openhab.core.thing.binding.BaseBridgeHandler; import org.openhab.core.thing.binding.ThingHandlerCallback; import org.openhab.core.thing.binding.ThingHandlerService; +import org.openhab.core.thing.util.ThingWebClientUtil; import org.openhab.core.types.Command; import org.openhab.core.types.RefreshType; import org.slf4j.Logger; @@ -147,7 +148,7 @@ public class NanoleafControllerHandler extends BaseBridgeHandler implements Nano } private void initializeTouchHttpClient() { - String httpClientName = thing.getUID().getId(); + String httpClientName = ThingWebClientUtil.buildWebClientConsumerName(thing.getUID(), null); try { httpClientSSETouchEvent = httpClientFactory.createHttpClient(httpClientName); @@ -290,6 +291,14 @@ public class NanoleafControllerHandler extends BaseBridgeHandler implements Nano @Override public void dispose() { stopAllJobs(); + HttpClient localHttpClientSSETouchEvent = this.httpClientSSETouchEvent; + if (localHttpClientSSETouchEvent != null) { + try { + localHttpClientSSETouchEvent.stop(); + } catch (Exception e) { + } + this.httpClientSSETouchEvent = null; + } super.dispose(); logger.debug("Disposing handler for Nanoleaf controller {}", getThing().getUID()); }