Author: gertv
Date: Fri Jan 30 10:46:05 2009
New Revision: 739232

URL: http://svn.apache.org/viewvc?rev=739232&view=rev
Log:
SM-1754: servicemix-eip unit tests stall intermittently

Modified:
    
servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTest.java
    
servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTransactionalTest.java

Modified: 
servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTest.java
URL: 
http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTest.java?rev=739232&r1=739231&r2=739232&view=diff
==============================================================================
--- 
servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTest.java
 (original)
+++ 
servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTest.java
 Fri Jan 30 10:46:05 2009
@@ -37,6 +37,7 @@
 import org.apache.servicemix.client.DefaultServiceMixClient;
 import org.apache.servicemix.components.util.ComponentSupport;
 import org.apache.servicemix.eip.support.ExchangeTarget;
+import org.apache.servicemix.executors.impl.ExecutorFactoryImpl;
 import org.apache.servicemix.id.IdGenerator;
 import org.apache.servicemix.jbi.container.JBIContainer;
 import org.apache.servicemix.store.memory.MemoryStore;
@@ -55,6 +56,7 @@
         jbi.setUseMBeanServer(false);
         jbi.setCreateMBeanServer(false);
         configureContainer();
+        configureThreadPool(jbi);
         listener = new ExchangeCompletedListener();
         jbi.addListener(listener);
      
@@ -75,6 +77,15 @@
         jbi.setFlowName("st");
     }
     
+    protected void configureThreadPool(JBIContainer container) {
+        ExecutorFactoryImpl factory = new ExecutorFactoryImpl();
+        // disable queuing and increase maximum thread pool size to 16 instead
+        // to avoid deadlocking the unit tests (they use sendSync extensively)
+        factory.getDefaultConfig().setMaximumPoolSize(16);
+        factory.getDefaultConfig().setQueueSize(0);
+        container.setExecutorFactory(factory);
+    }
+    
     protected void configurePattern(EIPEndpoint endpoint) {
         endpoint.setStore(new MemoryStore(new IdGenerator()) {
             public void store(String id, Object exchange) throws IOException {

Modified: 
servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTransactionalTest.java
URL: 
http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTransactionalTest.java?rev=739232&r1=739231&r2=739232&view=diff
==============================================================================
--- 
servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTransactionalTest.java
 (original)
+++ 
servicemix/components/engines/servicemix-eip/trunk/src/test/java/org/apache/servicemix/eip/AbstractEIPTransactionalTest.java
 Fri Jan 30 10:46:05 2009
@@ -74,6 +74,7 @@
         jbi.setCreateMBeanServer(false);
         jbi.setTransactionManager(tm);
         jbi.setAutoEnlistInTransaction(true);
+        configureThreadPool(jbi);
         listener = new ExchangeCompletedListener();
         jbi.addListener(listener);
         jbi.init();


Reply via email to