From 369e42b43297ffd5c1f1d8c8acf50aa206c6f564 Mon Sep 17 00:00:00 2001 From: Wouter Born Date: Tue, 26 Jul 2016 10:34:35 +0200 Subject: [PATCH] LIFX binding: Fix #1915 IllegalMonitorStateException may occur when unlocking after sending broadcast packet (#1919) Signed-off-by: Wouter Born --- .../binding/lifx/internal/LifxNetworkThrottler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/binding/org.eclipse.smarthome.binding.lifx/src/main/java/org/eclipse/smarthome/binding/lifx/internal/LifxNetworkThrottler.java b/extensions/binding/org.eclipse.smarthome.binding.lifx/src/main/java/org/eclipse/smarthome/binding/lifx/internal/LifxNetworkThrottler.java index b8610dd4048..ef563588f9f 100644 --- a/extensions/binding/org.eclipse.smarthome.binding.lifx/src/main/java/org/eclipse/smarthome/binding/lifx/internal/LifxNetworkThrottler.java +++ b/extensions/binding/org.eclipse.smarthome.binding.lifx/src/main/java/org/eclipse/smarthome/binding/lifx/internal/LifxNetworkThrottler.java @@ -85,8 +85,10 @@ public static void lock() { public static void unlock() { for (String key : locks.keySet()) { - timestamps.put(key, System.currentTimeMillis()); - locks.get(key).unlock(); + if (locks.get(key).isHeldByCurrentThread()) { + timestamps.put(key, System.currentTimeMillis()); + locks.get(key).unlock(); + } } }