From ebb8a65f7377380621906ce7c249d0c2fb896f22 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Fri, 12 Mar 2021 13:49:32 -0500 Subject: [PATCH] CachingClientConnectionFactoryTests Fix Timeout - second "Response" log causes a timeout, producing log noise in later tests. --- .../CachingClientConnectionFactoryTests.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/CachingClientConnectionFactoryTests.java b/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/CachingClientConnectionFactoryTests.java index c47398dbec..4c4cfb65fa 100644 --- a/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/CachingClientConnectionFactoryTests.java +++ b/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp/connection/CachingClientConnectionFactoryTests.java @@ -65,7 +65,6 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.ApplicationEventPublisher; import org.springframework.core.log.LogAccessor; import org.springframework.core.task.SimpleAsyncTaskExecutor; -import org.springframework.integration.MessageTimeoutException; import org.springframework.integration.channel.QueueChannel; import org.springframework.integration.ip.IpHeaders; import org.springframework.integration.ip.tcp.TcpOutboundGateway; @@ -747,19 +746,15 @@ public class CachingClientConnectionFactoryTests { private final CountDownLatch latch = new CountDownLatch(2); + private final AtomicBoolean first = new AtomicBoolean(true); + @Override public Void answer(InvocationOnMock invocation) throws Throwable { invocation.callRealMethod(); String log = ((Supplier) invocation.getArgument(0)).get(); - if (log.startsWith("Response")) { + if (log.startsWith("Response") && this.first.getAndSet(false)) { new SimpleAsyncTaskExecutor("testGatewayRelease-") - .execute(() -> { - try { - gate.handleMessage(new GenericMessage<>("bar")); - } - catch (MessageTimeoutException e) { - } - }); + .execute(() -> gate.handleMessage(new GenericMessage<>("bar"))); // hold up the first thread until the second has added its pending reply this.latch.await(20, TimeUnit.SECONDS); }