You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2019/11/04 09:55:31 UTC

[httpcomponents-core] 01/01: HTTPASYNC-152: non-blocking connection pool to automatically close all newly created sessions when being shut down

This is an automated email from the ASF dual-hosted git repository.

olegk pushed a commit to branch HTTPASYNC-152
in repository https://gitbox.apache.org/repos/asf/httpcomponents-core.git

commit a5defd98653b627a6bbf866895b96b56976dfb53
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Mon Nov 4 10:53:52 2019 +0100

    HTTPASYNC-152: non-blocking connection pool to automatically close all newly created sessions when being shut down
---
 .../main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java | 2 +-
 .../src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java   | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
index d84faeb..10371b7 100644
--- a/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
+++ b/httpcore-nio/src/main/java/org/apache/http/impl/nio/reactor/AbstractIOReactor.java
@@ -425,7 +425,7 @@ public abstract class AbstractIOReactor implements IOReactor {
                     if (!sessionRequest.isTerminated()) {
                         sessionRequest.completed(session);
                     }
-                    if (!sessionRequest.isTerminated()) {
+                    if (!sessionRequest.isTerminated() && !session.isClosed()) {
                         sessionCreated(key, session);
                     }
                     if (sessionRequest.isTerminated()) {
diff --git a/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java b/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
index 1bddff6..3387178 100644
--- a/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
+++ b/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
@@ -543,6 +543,10 @@ public abstract class AbstractNIOConnPool<T, C, E extends PoolEntry<T, C>>
 
     protected void requestCompleted(final SessionRequest request) {
         if (this.isShutDown.get()) {
+            final IOSession session = request.getSession();
+            if (session != null) {
+                session.close();
+            }
             return;
         }
         @SuppressWarnings("unchecked")