Skip to content

Commit dfff671

Browse files
(Fix/test) flaky testForceExpirationZeroOverrideDLQ in MessageInterceptorStrategyTest (#1852)
* Fix flakiness in MessageInterceptorStrategyTest#testForceExpirationZeroOverrideDLQ * use try-with-resources to close QueueBrowser instances * check if message reached DLQ in time
1 parent 70caa1b commit dfff671

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

activemq-unit-tests/src/test/java/org/apache/activemq/broker/policy/MessageInterceptorStrategyTest.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.apache.activemq.broker.region.policy.PolicyMap;
3939
import org.apache.activemq.store.memory.MemoryPersistenceAdapter;
4040
import org.apache.activemq.test.TestSupport;
41+
import org.apache.activemq.util.Wait;
4142
import org.junit.After;
4243
import org.junit.Before;
4344
import org.junit.Test;
@@ -207,7 +208,21 @@ public void testForceExpirationZeroOverrideDLQ() throws Exception {
207208
Message sendMessageP = session.createTextMessage("expiration=zero-no-dlq-expiry");
208209
producer.send(queue, sendMessageP);
209210

210-
Thread.sleep(250l);
211+
boolean reachedDlq = Wait.waitFor(new Wait.Condition() {
212+
@Override
213+
public boolean isSatisified() throws Exception {
214+
boolean originalQueueEmpty;
215+
boolean dlqHasMessage;
216+
try (QueueBrowser originalBrowser = session.createBrowser(queue)) {
217+
originalQueueEmpty = !originalBrowser.getEnumeration().hasMoreElements();
218+
}
219+
try (QueueBrowser dlqBrowser = session.createBrowser(createQueue("mis.forceExpiration.zero-no-dlq-expiry.dlq"))) {
220+
dlqHasMessage = dlqBrowser.getEnumeration().hasMoreElements();
221+
}
222+
return originalQueueEmpty && dlqHasMessage;
223+
}
224+
});
225+
assertTrue("Message did not reach DLQ in time", reachedDlq);
211226

212227
queueBrowser = session.createBrowser(queue);
213228
Enumeration<?> browseEnumeration = queueBrowser.getEnumeration();

0 commit comments

Comments
 (0)