This is an automated email from the ASF dual-hosted git repository.

jlmonteiro pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/main by this push:
     new 1dba35edc6 Proper Appender lifecycle to assert log messages (#1670)
1dba35edc6 is described below

commit 1dba35edc6bcda92f6f257e5e2babc9e5f8e47d1
Author: Jean-Louis Monteiro <[email protected]>
AuthorDate: Wed Feb 18 09:08:44 2026 +0100

    Proper Appender lifecycle to assert log messages (#1670)
---
 .../java/org/apache/activemq/util/DefaultTestAppender.java    | 11 ++++++-----
 .../java/org/apache/activemq/ProducerFlowControlTest.java     |  4 ++++
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/activemq-broker/src/test/java/org/apache/activemq/util/DefaultTestAppender.java
 
b/activemq-broker/src/test/java/org/apache/activemq/util/DefaultTestAppender.java
index b68c6b6bb4..d7867a5826 100644
--- 
a/activemq-broker/src/test/java/org/apache/activemq/util/DefaultTestAppender.java
+++ 
b/activemq-broker/src/test/java/org/apache/activemq/util/DefaultTestAppender.java
@@ -23,7 +23,8 @@ import org.apache.logging.log4j.core.Layout;
 import org.apache.logging.log4j.core.LogEvent;
 
 public abstract class DefaultTestAppender implements Appender {
-    
+
+    private volatile boolean started = false;
     String name = this.getClass().getSimpleName();
 
     @Override
@@ -68,21 +69,21 @@ public abstract class DefaultTestAppender implements 
Appender {
 
     @Override
     public void start() {
-
+        started = true;
     }
 
     @Override
     public void stop() {
-
+        started = false;
     }
 
     @Override
     public boolean isStarted() {
-        return false;
+        return started;
     }
 
     @Override
     public boolean isStopped() {
-        return false;
+        return !started;
     }
 }
diff --git 
a/activemq-unit-tests/src/test/java/org/apache/activemq/ProducerFlowControlTest.java
 
b/activemq-unit-tests/src/test/java/org/apache/activemq/ProducerFlowControlTest.java
index 7dbb49cb96..299eac51f2 100644
--- 
a/activemq-unit-tests/src/test/java/org/apache/activemq/ProducerFlowControlTest.java
+++ 
b/activemq-unit-tests/src/test/java/org/apache/activemq/ProducerFlowControlTest.java
@@ -34,6 +34,7 @@ import 
org.apache.activemq.broker.region.policy.VMPendingSubscriberMessageStorag
 import org.apache.activemq.command.ActiveMQQueue;
 import org.apache.activemq.transport.tcp.TcpTransport;
 import org.apache.activemq.util.DefaultTestAppender;
+import org.apache.activemq.util.Wait;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.core.Appender;
@@ -285,6 +286,9 @@ public class ProducerFlowControlTest extends JmsTestSupport 
{
             connection.start();
 
             fillQueue(queueB);
+            // Wait for the warning to be logged - there's a small delay 
between
+            // the producer being blocked and the Log4j appender processing 
the event
+            assertTrue("Warning should be logged", Wait.waitFor(() -> 
warnings.get() >= 1, TimeUnit.SECONDS.toMillis(5), 100));
             assertEquals(1, warnings.get());
 
             
broker.getDestinationPolicy().getDefaultEntry().setBlockedProducerWarningInterval(0);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to