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");


Reply via email to