src/main/java/org/jboss/util/threadpool/BasicThreadPool.java
public void setMaximumQueueSize(int size)
   {
      // Reset the executor work queue
      ArrayList tmp = new ArrayList();
      queue.drainTo(tmp);
      queue = new LinkedBlockingQueue(size);
      queue.addAll(tmp);

      ThreadFactory tf = executor.getThreadFactory();
      RejectedExecutionHandler handler = executor.getRejectedExecutionHandler();
      long keepAlive = executor.getKeepAliveTime(TimeUnit.SECONDS);
      int cs = executor.getCorePoolSize();
      int mcs = executor.getMaximumPoolSize();
      executor = new ThreadPoolExecutor(cs, mcs, keepAlive, TimeUnit.SECONDS, queue);
      executor.setThreadFactory(tf);
      executor.setRejectedExecutionHandler(handler);
   }
public void setMaximumQueueSize(int size)
   {
      // Reset the executor work queue
      ArrayList tmp = new ArrayList();
      queue.drainTo(tmp);
      queue = new LinkedBlockingQueue(size);
      queue.addAll(tmp);

      ThreadFactory tf = executor.getThreadFactory();
      RejectedExecutionHandler handler = executor.getRejectedExecutionHandler();
      long keepAlive = executor.getKeepAliveTime(TimeUnit.SECONDS);
      int cs = executor.getCorePoolSize();
      int mcs = executor.getMaximumPoolSize();
      executor = new ThreadPoolExecutor(cs, mcs, keepAlive, TimeUnit.SECONDS, queue);
      executor.setThreadFactory(tf);
      executor.setRejectedExecutionHandler(handler);
   }
public void setMaximumQueueSize ( int size ) { // Reset the executor work queue ArrayList tmp = new ArrayList ( ) ; queue . drainTo ( tmp ) ; queue = new LinkedBlockingQueue ( size ) ; queue . addAll ( tmp ) ; ThreadFactory tf = executor . getThreadFactory ( ) ; RejectedExecutionHandler handler = executor . getRejectedExecutionHandler ( ) ; long keepAlive = executor . getKeepAliveTime ( TimeUnit . SECONDS ) ; int cs = executor . getCorePoolSize ( ) ; int mcs = executor . getMaximumPoolSize ( ) ; executor = new ThreadPoolExecutor ( cs , mcs , keepAlive , TimeUnit . SECONDS , queue ) ; executor . setThreadFactory ( tf ) ; executor . setRejectedExecutionHandler ( handler ) ; }
This resets the work queue capacity. This requires recreating the
work queue and ThreadPoolExecutor, so this needs to be called
before doing any work with the pool.

@param size new work queue capacity
This resets the work queue capacity . This requires recreating the work queue and ThreadPoolExecutor so this needs to be called before doing any work with the pool .