From: Andreas Berger Date: Sat, 4 Feb 2023 17:03:14 +0000 (+0100) Subject: [fineoffsetweatherstation] Fix java.lang.IllegalMonitorStateException (#14326) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=bd6fe9008a7a8627438352b7ce7044b5b80fb2ce;p=openhab-addons.git [fineoffsetweatherstation] Fix java.lang.IllegalMonitorStateException (#14326) This fix ensures, that the `ReentrantLock::unlock` method is only called, when the Thread is owning the lock. resolves: #14322 Signed-off-by: Andreas Berger --- diff --git a/bundles/org.openhab.binding.fineoffsetweatherstation/src/main/java/org/openhab/binding/fineoffsetweatherstation/internal/service/GatewayQueryService.java b/bundles/org.openhab.binding.fineoffsetweatherstation/src/main/java/org/openhab/binding/fineoffsetweatherstation/internal/service/GatewayQueryService.java index c60d46a847..4edd46dc15 100644 --- a/bundles/org.openhab.binding.fineoffsetweatherstation/src/main/java/org/openhab/binding/fineoffsetweatherstation/internal/service/GatewayQueryService.java +++ b/bundles/org.openhab.binding.fineoffsetweatherstation/src/main/java/org/openhab/binding/fineoffsetweatherstation/internal/service/GatewayQueryService.java @@ -73,14 +73,20 @@ public abstract class GatewayQueryService implements AutoCloseable { protected byte @Nullable [] executeCommand(String command, byte[] request, Function validateResponse) { - byte[] buffer = new byte[2028]; - int bytesRead; - try { if (!REQUEST_LOCK.tryLock(30, TimeUnit.SECONDS)) { - logger.trace("executeCommand({}): time out while getting lock", command); + logger.debug("executeCommand({}): timed out while getting the lock", command); return null; } + } catch (InterruptedException e) { + logger.debug("executeCommand({}): was interrupted while getting the lock", command); + return null; + } + + byte[] buffer = new byte[2028]; + int bytesRead; + + try { Socket socket = getConnection(); if (socket == null) { return null;