Index: java/org/apache/catalina/core/StandardThreadExecutor.java =================================================================== --- java/org/apache/catalina/core/StandardThreadExecutor.java (revision 933886) +++ java/org/apache/catalina/core/StandardThreadExecutor.java (working copy) @@ -74,6 +74,11 @@ protected String name; /** + * prestart threads? + */ + protected boolean prestartminSpareThreads = false; + + /** * The maximum number of elements that can queue up before we reject them */ protected int maxQueueSize = Integer.MAX_VALUE; @@ -101,6 +106,9 @@ taskqueue = new TaskQueue(maxQueueSize); TaskThreadFactory tf = new TaskThreadFactory(namePrefix,daemon,getThreadPriority()); executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), maxIdleTime, TimeUnit.MILLISECONDS,taskqueue, tf); + if (prestartminSpareThreads) { + executor.prestartAllCoreThreads(); + } taskqueue.setParent(executor); setState(LifecycleState.STARTING); @@ -172,6 +180,10 @@ return name; } + public boolean isPrestartminSpareThreads() { + + return prestartminSpareThreads; + } public void setThreadPriority(int threadPriority) { this.threadPriority = threadPriority; } @@ -208,6 +220,10 @@ public void setName(String name) { this.name = name; } + + public void setPrestartminSpareThreads(boolean prestartminSpareThreads) { + this.prestartminSpareThreads = prestartminSpareThreads; + } public void setMaxQueueSize(int size) { this.maxQueueSize = size;