@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2012 the original author or authors .
* Copyright 2002 - 2013 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -126,7 +126,7 @@ public class ThreadPoolExecutorFactoryBean extends ExecutorConfigurationSupport
@@ -126,7 +126,7 @@ public class ThreadPoolExecutorFactoryBean extends ExecutorConfigurationSupport
* < p > Default is "false" , exposing the raw executor as bean reference .
* Switch this flag to "true" to strictly prevent clients from
* modifying the executor ' s configuration .
* @see java . util . concurrent . Executors # unconfigurableScheduled ExecutorService
* @see java . util . concurrent . Executors # unconfigurableExecutorService
* /
public void setExposeUnconfigurableExecutor ( boolean exposeUnconfigurableExecutor ) {
this . exposeUnconfigurableExecutor = exposeUnconfigurableExecutor ;
@ -137,9 +137,8 @@ public class ThreadPoolExecutorFactoryBean extends ExecutorConfigurationSupport
@@ -137,9 +137,8 @@ public class ThreadPoolExecutorFactoryBean extends ExecutorConfigurationSupport
ThreadFactory threadFactory , RejectedExecutionHandler rejectedExecutionHandler ) {
BlockingQueue < Runnable > queue = createQueue ( this . queueCapacity ) ;
ThreadPoolExecutor executor = new ThreadPoolExecutor (
this . corePoolSize , this . maxPoolSize , this . keepAliveSeconds , TimeUnit . SECONDS ,
queue , threadFactory , rejectedExecutionHandler ) ;
ThreadPoolExecutor executor = createExecutor ( this . corePoolSize , this . maxPoolSize ,
this . keepAliveSeconds , queue , threadFactory , rejectedExecutionHandler ) ;
if ( this . allowCoreThreadTimeOut ) {
executor . allowCoreThreadTimeOut ( true ) ;
}
@ -151,6 +150,27 @@ public class ThreadPoolExecutorFactoryBean extends ExecutorConfigurationSupport
@@ -151,6 +150,27 @@ public class ThreadPoolExecutorFactoryBean extends ExecutorConfigurationSupport
return executor ;
}
/ * *
* Create a new instance of { @link ThreadPoolExecutor } or a subclass thereof .
* < p > The default implementation creates a standard { @link ThreadPoolExecutor } .
* Can be overridden to provide custom { @link ThreadPoolExecutor } subclasses .
* @param corePoolSize the specified core pool size
* @param maxPoolSize the specified maximum pool size
* @param keepAliveSeconds the specified keep - alive time in seconds
* @param queue the BlockingQueue to use
* @param threadFactory the ThreadFactory to use
* @param rejectedExecutionHandler the RejectedExecutionHandler to use
* @return a new ThreadPoolExecutor instance
* @see # afterPropertiesSet ( )
* /
protected ThreadPoolExecutor createExecutor (
int corePoolSize , int maxPoolSize , int keepAliveSeconds , BlockingQueue < Runnable > queue ,
ThreadFactory threadFactory , RejectedExecutionHandler rejectedExecutionHandler ) {
return new ThreadPoolExecutor ( corePoolSize , maxPoolSize ,
keepAliveSeconds , TimeUnit . SECONDS , queue , threadFactory , rejectedExecutionHandler ) ;
}
/ * *
* Create the BlockingQueue to use for the ThreadPoolExecutor .
* < p > A LinkedBlockingQueue instance will be created for a positive