diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusTests-context.xml b/spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusTests-context.xml
index 831d2b377b..66987f9b8c 100644
--- a/spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusTests-context.xml
+++ b/spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusTests-context.xml
@@ -8,7 +8,7 @@
diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusTests.java b/spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusTests.java
index fd3ca81529..723b758de7 100644
--- a/spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusTests.java
+++ b/spring-integration-core/src/test/java/org/springframework/integration/config/xml/ControlBusTests.java
@@ -17,6 +17,7 @@
package org.springframework.integration.config.xml;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.awaitility.Awaitility.await;
import java.util.Date;
import java.util.Map;
@@ -96,7 +97,7 @@ public class ControlBusTests {
}
@Test
- public void testControlHeaderChannelReaper() throws InterruptedException {
+ public void testControlHeaderChannelReaper() {
MessagingTemplate messagingTemplate = new MessagingTemplate();
messagingTemplate.convertAndSend(input, "@integrationHeaderChannelRegistry.size()");
Message> result = this.output.receive(0);
@@ -108,13 +109,15 @@ public class ControlBusTests {
result = this.output.receive(0);
assertThat(result).isNotNull();
assertThat(result.getPayload()).isEqualTo(1);
- // Let the registry to reap old channels
- Thread.sleep(1000);
+ // Let the registry reap old channels
messagingTemplate.convertAndSend(input, "@integrationHeaderChannelRegistry.runReaper()");
- messagingTemplate.convertAndSend(input, "@integrationHeaderChannelRegistry.size()");
- result = this.output.receive(0);
- assertThat(result).isNotNull();
- assertThat(result.getPayload()).isEqualTo(0);
+ await()
+ .until(() -> {
+ messagingTemplate.convertAndSend(input, "@integrationHeaderChannelRegistry.size()");
+ Message> sizeMessage = this.output.receive(0);
+ assertThat(sizeMessage).isNotNull();
+ return sizeMessage.getPayload();
+ }, payload -> payload.equals(0));
}
@Test