Skip to content

Commit e9a0149

Browse files
committed
Fix race in TCP async gateway test
1 parent 6b57e16 commit e9a0149

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/TcpOutboundGatewayTests.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -981,12 +981,27 @@ public void postSend(Message<?> message, MessageChannel channel, boolean sent) {
981981
gateway.afterPropertiesSet();
982982
gateway.handleMessage(MessageBuilder.withPayload("Test1").build());
983983
gateway.handleMessage(MessageBuilder.withPayload("Test2").build());
984-
Message<?> reply = replyChannel.receive(10000);
985-
assertThat(reply).isNotNull();
986-
assertThat(reply.getPayload()).isEqualTo("reply1".getBytes());
987-
reply = replyChannel.receive(10000);
988-
assertThat(reply).isNotNull();
989-
assertThat(reply.getPayload()).isEqualTo("reply2".getBytes());
984+
Message<?> reply1 = replyChannel.receive(10000);
985+
assertThat(reply1).isNotNull();
986+
if (singleUse) {
987+
assertThat(reply1.getPayload()).satisfiesAnyOf(
988+
payload -> assertThat(payload).isEqualTo("reply1".getBytes()),
989+
payload -> assertThat(payload).isEqualTo("reply2".getBytes()));
990+
}
991+
else {
992+
assertThat(reply1.getPayload()).isEqualTo("reply1".getBytes());
993+
}
994+
Message<?> reply2 = replyChannel.receive(10000);
995+
assertThat(reply2).isNotNull();
996+
if (singleUse) {
997+
assertThat(reply1.getPayload()).satisfiesAnyOf(
998+
payload -> assertThat(payload).isEqualTo("reply1".getBytes()),
999+
payload -> assertThat(payload).isEqualTo("reply2".getBytes()));
1000+
assertThat(reply1.getPayload()).isNotEqualTo(reply2.getPayload());
1001+
}
1002+
else {
1003+
assertThat(reply2.getPayload()).isEqualTo("reply2".getBytes());
1004+
}
9901005
assertThat(thread.get()).isNotSameAs(Thread.currentThread());
9911006
}
9921007
finally {

0 commit comments

Comments
 (0)