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