Author: davsclaus Date: Fri Mar 19 13:17:16 2010 New Revision: 925208 URL: http://svn.apache.org/viewvc?rev=925208&view=rev Log: CANMEL-1588: threadPool in Spring XML requires thread name.
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceStrategy.java camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelThreadPoolFactoryBean.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=925208&r1=925207&r2=925208&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 Fri Mar 19 13:17:16 2010 @@ -28,6 +28,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.spi.ExecutorServiceStrategy; import org.apache.camel.spi.LifecycleStrategy; import org.apache.camel.spi.ThreadPoolProfile; +import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.concurrent.ExecutorServiceHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -145,6 +146,10 @@ public class DefaultExecutorServiceStrat public ExecutorService newThreadPool(Object source, String name, int corePoolSize, int maxPoolSize, long keepAliveTime, TimeUnit timeUnit, int maxQueueSize, RejectedExecutionHandler rejectedExecutionHandler, boolean daemon) { + + // the thread name must not be null + ObjectHelper.notNull(name, "ThreadName"); + ExecutorService answer = ExecutorServiceHelper.newThreadPool(threadNamePattern, name, corePoolSize, maxPoolSize, keepAliveTime, timeUnit, maxQueueSize, rejectedExecutionHandler, daemon); onThreadPoolCreated(answer); Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelThreadPoolFactoryBean.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelThreadPoolFactoryBean.java?rev=925208&r1=925207&r2=925208&view=diff ============================================================================== --- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelThreadPoolFactoryBean.java (original) +++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelThreadPoolFactoryBean.java Fri Mar 19 13:17:16 2010 @@ -60,7 +60,7 @@ public class CamelThreadPoolFactoryBean private Integer maxQueueSize = -1; @XmlAttribute private ThreadPoolRejectedPolicy rejectedPolicy = ThreadPoolRejectedPolicy.CallerRuns; - @XmlAttribute + @XmlAttribute(required = true) private String threadName; @XmlAttribute private Boolean daemon = Boolean.TRUE; @@ -81,15 +81,13 @@ public class CamelThreadPoolFactoryBean throw new IllegalArgumentException("PoolSize must be a positive number"); } - String name = getThreadName() != null ? getThreadName() : getId(); - int max = getMaxPoolSize() != null ? getMaxPoolSize() : getPoolSize(); RejectedExecutionHandler rejected = null; if (rejectedPolicy != null) { rejected = rejectedPolicy.asRejectedExecutionHandler(); } - ExecutorService answer = camelContext.getExecutorServiceStrategy().newThreadPool(getId(), name, getPoolSize(), max, + ExecutorService answer = camelContext.getExecutorServiceStrategy().newThreadPool(getId(), getThreadName(), getPoolSize(), max, getKeepAliveTime(), getTimeUnit(), getMaxQueueSize(), rejected, isDaemon()); return answer; }