You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by mh...@apache.org on 2007/11/10 04:35:29 UTC

svn commit: r593730 - /mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java

Author: mheath
Date: Fri Nov  9 19:35:29 2007
New Revision: 593730

URL: http://svn.apache.org/viewvc?rev=593730&view=rev
Log:
Minor changes to setCorePoolSize and setMaximumPoolSize.

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java?rev=593730&r1=593729&r2=593730&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/executor/OrderedThreadPoolExecutor.java Fri Nov  9 19:35:29 2007
@@ -181,17 +181,18 @@
     
     @Override
     public void setMaximumPoolSize(int maximumPoolSize) {
+        if (maximumPoolSize <= 0 || maximumPoolSize < corePoolSize) {
+            throw new IllegalArgumentException("maximumPoolSize: "
+                    + maximumPoolSize);
+        }
+
         synchronized (workers) {
-            if (maximumPoolSize == 0 || maximumPoolSize < corePoolSize) {
-                throw new IllegalArgumentException("maximumPoolSize: " + maximumPoolSize);
-            }
-            
-            if (this.maximumPoolSize > maximumPoolSize) {
-                for (int i = this.maximumPoolSize - maximumPoolSize; i > 0; i --) {
-                    removeWorker();
-                }
-            }
             this.maximumPoolSize = maximumPoolSize;
+            int difference = workers.size() - maximumPoolSize;
+            while (difference > 0) {
+                removeWorker();
+                --difference;
+            }
         }
     }
     
@@ -428,6 +429,9 @@
     public void setCorePoolSize(int corePoolSize) {
         if (corePoolSize < 0) {
             throw new IllegalArgumentException("corePoolSize: " + corePoolSize);
+        }
+        if (corePoolSize > maximumPoolSize) {
+            throw new IllegalArgumentException("corePoolSize exceeds maximumPoolSize");
         }
         
         synchronized (workers) {