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/12/04 07:51:12 UTC
svn commit: r600806 - in
/mina/trunk/core/src/main/java/org/apache/mina/common:
AbstractPollingConnectionlessIoAcceptor.java AbstractPollingIoAcceptor.java
AbstractPollingIoConnector.java
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;
}