Skip to content

Commit

Permalink
[knx] Handle exceptions during initial read (openhab#12520)
Browse files Browse the repository at this point in the history
fixes openhab#7239

Signed-off-by: Holger Friedrich <[email protected]>
Signed-off-by: Andras Uhrin <[email protected]>
  • Loading branch information
holgerfriedrich authored and andrasU committed Nov 12, 2022
1 parent 32dc821 commit 1c47ea1
Showing 1 changed file with 10 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

import java.time.Duration;
import java.util.Set;
import java.util.concurrent.CancellationException;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ScheduledExecutorService;
Expand Down Expand Up @@ -291,6 +292,8 @@ private void readNextQueuedDatapoint() {
logger.trace("Sending a Group Read Request telegram for {}", datapoint.getDatapoint().getMainAddress());
processCommunicator.read(datapoint.getDatapoint());
} catch (KNXException e) {
// Note: KnxException does not cover KnxRuntimeException and subclasses KnxSecureException,
// KnxIllegArgumentException
if (datapoint.getRetries() < datapoint.getLimit()) {
readDatapoints.add(datapoint);
logger.debug("Could not read value for datapoint {}: {}. Going to retry.",
Expand All @@ -299,9 +302,15 @@ private void readNextQueuedDatapoint() {
logger.warn("Giving up reading datapoint {}, the number of maximum retries ({}) is reached.",
datapoint.getDatapoint().getMainAddress(), datapoint.getLimit());
}
} catch (InterruptedException e) {
} catch (InterruptedException | CancellationException e) {
logger.debug("Interrupted sending KNX read request");
return;
} catch (Exception e) {
// Any other exception: Fail gracefully, i.e. notify user and continue reading next DP.
// Not catching this would end the scheduled read for all DPs in case of an error.
// Severity is warning as this is likely caused by a configuration error.
logger.warn("Error reading datapoint {}: {}", datapoint.getDatapoint().getMainAddress(),
e.getMessage());
}
}
}
Expand Down

0 comments on commit 1c47ea1

Please sign in to comment.