From e8cf40e24f3c8678ad1655ef2757d6b3d6186cfb Mon Sep 17 00:00:00 2001 From: Axel Sanguinetti Date: Wed, 15 Nov 2023 10:26:27 -0300 Subject: [PATCH] Fixing OpenWireConnectionTimeoutTest. - It seems checking configuredOk can't be done that early. - Falling back to let the Timer be created and make sure it is disposed of. --- .../transport/AbstractInactivityMonitor.java | 23 +++++++++++++++---- .../activemq/transport/InactivityMonitor.java | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/activemq-client/src/main/java/org/apache/activemq/transport/AbstractInactivityMonitor.java b/activemq-client/src/main/java/org/apache/activemq/transport/AbstractInactivityMonitor.java index 6182be7c42..9db5fa1462 100644 --- a/activemq-client/src/main/java/org/apache/activemq/transport/AbstractInactivityMonitor.java +++ b/activemq-client/src/main/java/org/apache/activemq/transport/AbstractInactivityMonitor.java @@ -437,6 +437,17 @@ public abstract class AbstractInactivityMonitor extends TransportFilter { synchronized (AbstractInactivityMonitor.class) { READ_CHECK_TIMER.purge(); CHECKER_COUNTER--; + if (CHECKER_COUNTER == 0) { + if (READ_CHECK_TIMER != null) { + READ_CHECK_TIMER.cancel(); + READ_CHECK_TIMER = null; + } + try { + ThreadPoolUtils.shutdownGraceful(ASYNC_TASKS, 0); + } finally { + ASYNC_TASKS = null; + } + } } } } @@ -497,10 +508,14 @@ public abstract class AbstractInactivityMonitor extends TransportFilter { READ_CHECK_TIMER.purge(); CHECKER_COUNTER--; if (CHECKER_COUNTER == 0) { - WRITE_CHECK_TIMER.cancel(); - READ_CHECK_TIMER.cancel(); - WRITE_CHECK_TIMER = null; - READ_CHECK_TIMER = null; + if (WRITE_CHECK_TIMER != null) { + WRITE_CHECK_TIMER.cancel(); + WRITE_CHECK_TIMER = null; + } + if (READ_CHECK_TIMER != null) { + READ_CHECK_TIMER.cancel(); + READ_CHECK_TIMER = null; + } try { ThreadPoolUtils.shutdownGraceful(ASYNC_TASKS, 0); } finally { diff --git a/activemq-client/src/main/java/org/apache/activemq/transport/InactivityMonitor.java b/activemq-client/src/main/java/org/apache/activemq/transport/InactivityMonitor.java index aea8c81ae1..d86699b3b6 100644 --- a/activemq-client/src/main/java/org/apache/activemq/transport/InactivityMonitor.java +++ b/activemq-client/src/main/java/org/apache/activemq/transport/InactivityMonitor.java @@ -46,7 +46,7 @@ public class InactivityMonitor extends AbstractInactivityMonitor { @Override public void start() throws Exception { - if (!isMonitorStarted() && configuredOk()) { + if (!isMonitorStarted()) { startConnectCheckTask(); } super.start();