You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2010/10/13 14:55:03 UTC

svn commit: r1022085 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java

Author: ningjiang
Date: Wed Oct 13 12:55:02 2010
New Revision: 1022085

URL: http://svn.apache.org/viewvc?rev=1022085&view=rev
Log:
CAMEL-3220 try to fix the test hang of ThreadsZeroInCoreAndMaxPoolTest

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java?rev=1022085&r1=1022084&r2=1022085&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java Wed Oct 13 12:55:02 2010
@@ -271,9 +271,9 @@ public class DefaultExecutorServiceStrat
         ObjectHelper.notNull(name, "ThreadName");
         
         // If we set the corePoolSize to be 0, the whole camel application will hang in JDK5
-        // just add a check here to set the corePoolSize to be 1 
-        if (corePoolSize == 0) {
-            corePoolSize = 1;
+        // just add a check here to throw the IllegalArgumentException 
+        if (corePoolSize < 1) {
+            throw new IllegalArgumentException("The corePoolSize can't be lower than 1");
         }
         
         ExecutorService answer = ExecutorServiceHelper.newThreadPool(threadNamePattern, name, corePoolSize, maxPoolSize, keepAliveTime,

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java?rev=1022085&r1=1022084&r2=1022085&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ThreadsZeroInCoreAndMaxPoolTest.java Wed Oct 13 12:55:02 2010
@@ -17,6 +17,7 @@
 package org.apache.camel.processor;
 
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.FailedToCreateRouteException;
 import org.apache.camel.builder.RouteBuilder;
 
 /**
@@ -24,14 +25,34 @@ import org.apache.camel.builder.RouteBui
  */
 public class ThreadsZeroInCoreAndMaxPoolTest extends ContextTestSupport {
 
-    public void testThreadsCoreAndMaxPool() throws Exception {
+    // ignore the test
+    public void xtestThreadsCoreAndMaxPool() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
         template.sendBody("direct:start", "Hello World");
 
         assertMockEndpointsSatisfied();
     }
+    
+    public void testThreadsCoreBeZero() throws Exception {
+        try {
+            context.addRoutes(new RouteBuilder() {
+                @Override
+                public void configure() throws Exception {
+                    from("direct:start")
+                    // will use a a custom thread pool with 0 in core and 2 max
+                        .threads(0, 2).to("mock:result");
+                }
+            });
+            // expect to get the IllegalArgumentException
+            fail("Except the exception here");
+        } catch (FailedToCreateRouteException ex) {
+            assertTrue(ex.getCause() instanceof IllegalArgumentException);
+
+        }
+    }
 
+     
     public void testThreadsCoreAndMaxPoolBuilder() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
@@ -45,11 +66,7 @@ public class ThreadsZeroInCoreAndMaxPool
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start")
-                    // will use a a custom thread pool with 0 in core and 2 max
-                    .threads(0, 2)
-                    .to("mock:result");
-
+                
                 from("direct:foo")
                     // only change thread name and max, but rely on default settings
                     .threads().maxPoolSize(20).threadName("myPool")