Author: cmueller
Date: Thu Mar 15 07:23:04 2012
New Revision: 1300821
URL: http://svn.apache.org/viewvc?rev=1300821&view=rev
Log:
CAMEL-5088:
org.apache.camel.component.mail.MailProducerConcurrentTest.testConcurrentProducers()
fails in unpredictable
Modified:
camel/branches/camel-2.8.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerConcurrentTest.java
Modified:
camel/branches/camel-2.8.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerConcurrentTest.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerConcurrentTest.java?rev=1300821&r1=1300820&r2=1300821&view=diff
==============================================================================
---
camel/branches/camel-2.8.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerConcurrentTest.java
(original)
+++
camel/branches/camel-2.8.x/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailProducerConcurrentTest.java
Thu Mar 15 07:23:04 2012
@@ -19,8 +19,10 @@ package org.apache.camel.component.mail;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.junit4.CamelTestSupport;
@@ -50,17 +52,22 @@ public class MailProducerConcurrentTest
getMockEndpoint("mock:result").expectedMessageCount(files);
getMockEndpoint("mock:result").expectsNoDuplicates(body());
+ final CountDownLatch latch = new CountDownLatch(files);
ExecutorService executor = Executors.newFixedThreadPool(poolSize);
for (int i = 0; i < files; i++) {
final int index = i;
executor.submit(new Callable<Object>() {
public Object call() throws Exception {
template.sendBodyAndHeader("direct:start", "Message " +
index, "To", "someone@localhost");
+ latch.countDown();
return null;
}
});
}
+ // wait first for all the exchanges above to be thoroughly sent
asynchronously
+ assertTrue(latch.await(2, TimeUnit.SECONDS));
+
assertMockEndpointsSatisfied();
Mailbox box = Mailbox.get("someone@localhost");