From c81790cebf3f9675659648b7a12ba2926f592f15 Mon Sep 17 00:00:00 2001 From: lolodomo Date: Sat, 5 Nov 2022 14:42:01 +0100 Subject: [PATCH] [verisure] Avoid updates duplication after communication errors (#13652) Avoid registering several times the same device status listener. It is called by the thing handler each time the bridge status changed to ONLINE. Signed-off-by: Laurent Garnier --- .../openhab/binding/verisure/internal/VerisureSession.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bundles/org.openhab.binding.verisure/src/main/java/org/openhab/binding/verisure/internal/VerisureSession.java b/bundles/org.openhab.binding.verisure/src/main/java/org/openhab/binding/verisure/internal/VerisureSession.java index 1b313c0ac..712d4c773 100644 --- a/bundles/org.openhab.binding.verisure/src/main/java/org/openhab/binding/verisure/internal/VerisureSession.java +++ b/bundles/org.openhab.binding.verisure/src/main/java/org/openhab/binding/verisure/internal/VerisureSession.java @@ -27,8 +27,8 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; @@ -82,7 +82,7 @@ public class VerisureSession { private final Map> verisureHandlers = new ConcurrentHashMap<>(); private final Logger logger = LoggerFactory.getLogger(VerisureSession.class); private final Gson gson = new Gson(); - private final List> deviceStatusListeners = new CopyOnWriteArrayList<>(); + private final Set> deviceStatusListeners = ConcurrentHashMap.newKeySet(); private final Map verisureInstallations = new ConcurrentHashMap<>(); private static final List APISERVERLIST = Arrays.asList("https://m-api01.verisure.com", "https://m-api02.verisure.com");