You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2018/07/26 05:04:43 UTC
[2/4] mina-sshd git commit: [SSHD-835] Disable NoCloseExecutor
execution calls if marked as shutdown
[SSHD-835] Disable NoCloseExecutor execution calls if marked as shutdown
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/a52a9ded
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/a52a9ded
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/a52a9ded
Branch: refs/heads/master
Commit: a52a9ded58650c8f106c327d004506fc4bb4e62d
Parents: f998ae6
Author: Goldstein Lyor <ly...@c-b4.com>
Authored: Thu Jul 26 07:35:11 2018 +0300
Committer: Goldstein Lyor <ly...@c-b4.com>
Committed: Thu Jul 26 08:04:30 2018 +0300
----------------------------------------------------------------------
.../apache/sshd/common/util/threads/ThreadUtils.java | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/a52a9ded/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java
index 66b5cd2..f09237e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/threads/ThreadUtils.java
@@ -45,6 +45,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.sshd.common.future.CloseFuture;
import org.apache.sshd.common.future.DefaultCloseFuture;
import org.apache.sshd.common.future.SshFutureListener;
+import org.apache.sshd.common.util.ValidateUtils;
import org.apache.sshd.common.util.closeable.AbstractCloseable;
import org.apache.sshd.common.util.logging.AbstractLoggingBean;
@@ -54,7 +55,6 @@ import org.apache.sshd.common.util.logging.AbstractLoggingBean;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public final class ThreadUtils {
-
private ThreadUtils() {
throw new UnsupportedOperationException("No instance");
}
@@ -73,7 +73,7 @@ public final class ThreadUtils {
* @return Either the original service or a wrapped one - depending on the
* value of the <tt>shutdownOnExit</tt> parameter
*/
- public static CloseableExecutorService protectExecutorServiceShutdown(final CloseableExecutorService executorService, boolean shutdownOnExit) {
+ public static CloseableExecutorService protectExecutorServiceShutdown(CloseableExecutorService executorService, boolean shutdownOnExit) {
if (executorService == null || shutdownOnExit || executorService instanceof NoCloseExecutor) {
return executorService;
} else {
@@ -251,7 +251,6 @@ public final class ThreadUtils {
}
public static class NoCloseExecutor implements CloseableExecutorService {
-
protected final ExecutorService executor;
protected final CloseFuture closeFuture;
@@ -262,41 +261,49 @@ public final class ThreadUtils {
@Override
public <T> Future<T> submit(Callable<T> task) {
+ ValidateUtils.checkState(!isShutdown(), "Executor has been shut down");
return executor.submit(task);
}
@Override
public <T> Future<T> submit(Runnable task, T result) {
+ ValidateUtils.checkState(!isShutdown(), "Executor has been shut down");
return executor.submit(task, result);
}
@Override
public Future<?> submit(Runnable task) {
+ ValidateUtils.checkState(!isShutdown(), "Executor has been shut down");
return executor.submit(task);
}
@Override
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException {
+ ValidateUtils.checkState(!isShutdown(), "Executor has been shut down");
return executor.invokeAll(tasks);
}
@Override
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException {
+ ValidateUtils.checkState(!isShutdown(), "Executor has been shut down");
return executor.invokeAll(tasks, timeout, unit);
}
@Override
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException {
+ ValidateUtils.checkState(!isShutdown(), "Executor has been shut down");
return executor.invokeAny(tasks);
}
@Override
public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
+ ValidateUtils.checkState(!isShutdown(), "Executor has been shut down");
return executor.invokeAny(tasks, timeout, unit);
}
@Override
public void execute(Runnable command) {
+ ValidateUtils.checkState(!isShutdown(), "Executor has been shut down");
executor.execute(command);
}