You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/11/10 08:55:07 UTC
svn commit: r593749 -
/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java
Author: trustin
Date: Fri Nov 9 23:55:04 2007
New Revision: 593749
URL: http://svn.apache.org/viewvc?rev=593749&view=rev
Log:
Applied the changes in OrderedThreadPoolExecutor to UnorderedThreadPoolExecutor
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java?rev=593749&r1=593748&r2=593749&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/executor/UnorderedThreadPoolExecutor.java Fri Nov 9 23:55:04 2007
@@ -182,17 +182,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;
+ }
}
}
@@ -387,7 +388,10 @@
if (corePoolSize < 0) {
throw new IllegalArgumentException("corePoolSize: " + corePoolSize);
}
-
+ if (corePoolSize > maximumPoolSize) {
+ throw new IllegalArgumentException("corePoolSize exceeds maximumPoolSize");
+ }
+
synchronized (workers) {
if (this.corePoolSize > corePoolSize) {
for (int i = this.corePoolSize - corePoolSize; i > 0; i --) {