From 65aa0d42037b3057cc15683e63c88f21e65f5452 Mon Sep 17 00:00:00 2001 From: "Jan N. Klug" Date: Fri, 14 Jul 2023 20:10:22 +0200 Subject: [PATCH] Increase large event queue warn limit On larger installations with 1000+ items the limit of 1000 elements in the queue is exceeded easily. Since no events are lost (they just take longer to be processed), the limit that needs to be exceeded before a warning is issued should be increased. See reports on the forum. Signed-off-by: Jan N. Klug --- .../org/openhab/core/internal/events/EventHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/events/EventHandler.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/events/EventHandler.java index aa8cbd624e3..e2ca6ba6da4 100644 --- a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/events/EventHandler.java +++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/events/EventHandler.java @@ -44,6 +44,7 @@ @NonNullByDefault public class EventHandler implements AutoCloseable { + private static final int EVENT_QUEUE_WARN_LIMIT = 5000; private static final long EVENTSUBSCRIBER_EVENTHANDLING_MAX_MS = TimeUnit.SECONDS.toMillis(5); private final Logger logger = LoggerFactory.getLogger(EventHandler.class); @@ -154,10 +155,9 @@ private synchronized void dispatchEvent(final Set eventSubscrib ExecutorRecord executorRecord = Objects.requireNonNull( executors.computeIfAbsent(eventSubscriber.getClass(), this::createExecutorRecord)); int queueSize = executorRecord.count().incrementAndGet(); - if (queueSize > 1000) { - logger.warn( - "The queue for a subscriber of type '{}' exceeds 1000 elements. System may be unstable.", - eventSubscriber.getClass()); + if (queueSize > EVENT_QUEUE_WARN_LIMIT) { + logger.warn("The queue for a subscriber of type '{}' exceeds {} elements. System may be unstable.", + eventSubscriber.getClass(), EVENT_QUEUE_WARN_LIMIT); } CompletableFuture.runAsync(() -> { ScheduledFuture logTimeout = executorRecord.watcher().schedule(