From 8d703992eaa93f4710794445ffc413aab483cbfd Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 29 Dec 2016 11:58:20 -0500 Subject: [PATCH] MongoDbInboundChAdapterIntTests race condition Since we can have a result message in the `replyChannel` before the TX commit, a subsequent adapter `stop()` causes the current task interruption, therefore TX rallback. That's why we see `semaphore.acquire()` interruption and don't see message in the `afterCommitChannel` **Cherry-pick to 4.3.x** (cherry picked from commit bdab0aa) --- .../config/MongoDbInboundChannelAdapterIntegrationTests.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbInboundChannelAdapterIntegrationTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbInboundChannelAdapterIntegrationTests.java index 9c26c59440..e90660afb0 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbInboundChannelAdapterIntegrationTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbInboundChannelAdapterIntegrationTests.java @@ -219,11 +219,10 @@ public class MongoDbInboundChannelAdapterIntegrationTests extends MongoDbAvailab assertNotNull(replyChannel.receive(10000)); assertNull(replyChannel.receive(100)); - this.inboundAdapterWithOnSuccessDisposition.stop(); - assertNotNull(this.afterCommitChannel.receive(10000)); assertNull(this.mongoTemplate.findOne(new Query(Criteria.where("name").is("Bob")), Person.class, "data")); + this.inboundAdapterWithOnSuccessDisposition.stop(); this.replyChannel.purge(null); }