Author: trustin
Date: Mon Dec  3 22:51:10 2007
New Revision: 600806

URL: http://svn.apache.org/viewvc?rev=600806&view=rev
Log:
Fixed RejectedExecutionException (really this time)


Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java?rev=600806&r1=600805&r2=600806&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingConnectionlessIoAcceptor.java
 Mon Dec  3 22:51:10 2007
@@ -32,6 +32,7 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -134,8 +135,16 @@
     protected IoFuture dispose0() throws Exception {
         unbind();
         if (!disposalFuture.isDone()) {
-            startupWorker();
-            wakeup();
+            try {
+                startupWorker();
+                wakeup();
+            } catch (RejectedExecutionException e) {
+                if (createdExecutor) {
+                    // Ignore.
+                } else {
+                    throw e;
+                }
+            }
         }
         return disposalFuture;
     }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java?rev=600806&r1=600805&r2=600806&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoAcceptor.java
 Mon Dec  3 22:51:10 2007
@@ -32,6 +32,7 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -140,8 +141,16 @@
     protected IoFuture dispose0() throws Exception {
         unbind();
         if (!disposalFuture.isDone()) {
-            startupWorker();
-            wakeup();
+            try {
+                startupWorker();
+                wakeup();
+            } catch (RejectedExecutionException e) {
+                if (createdExecutor) {
+                    // Ignore.
+                } else {
+                    throw e;
+                }
+            }
         }
         return disposalFuture;
     }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java?rev=600806&r1=600805&r2=600806&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractPollingIoConnector.java
 Mon Dec  3 22:51:10 2007
@@ -27,6 +27,7 @@
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -128,8 +129,16 @@
     @Override
     protected final IoFuture dispose0() throws Exception {
         if (!disposalFuture.isDone()) {
-            startupWorker();
-            wakeup();
+            try {
+                startupWorker();
+                wakeup();
+            } catch (RejectedExecutionException e) {
+                if (createdExecutor) {
+                    // Ignore.
+                } else {
+                    throw e;
+                }
+            }
         }
         return disposalFuture;
     }


Reply via email to