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 2017/05/10 07:33:51 UTC

[04/13] httpcomponents-core git commit: HTTPASYNC-116: Remove cancelled lease requests from the request queue when validating pending requests

HTTPASYNC-116: Remove cancelled lease requests from the request queue when validating pending requests

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.4.x@1780653 13f79535-47bb-0310-9956-ffa450edef68


Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/commit/55d881e0
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/55d881e0
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/55d881e0

Branch: refs/heads/HTTPCORE-446
Commit: 55d881e0257be8c2a57c992a4fd2bdd158e86d7b
Parents: 7dc16b8
Author: olegk <ol...@13f79535-47bb-0310-9956-ffa450edef68>
Authored: Sat Jan 28 10:34:41 2017 +0000
Committer: olegk <ol...@13f79535-47bb-0310-9956-ffa450edef68>
Committed: Sat Jan 28 10:34:41 2017 +0000

----------------------------------------------------------------------
 .../apache/http/nio/pool/AbstractNIOConnPool.java    | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/55d881e0/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
----------------------------------------------------------------------
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 b4ee96d..603b71d 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
@@ -484,11 +484,18 @@ public abstract class AbstractNIOConnPool<T, C, E extends PoolEntry<T, C>>
             final ListIterator<LeaseRequest<T, C, E>> it = this.leasingRequests.listIterator();
             while (it.hasNext()) {
                 final LeaseRequest<T, C, E> request = it.next();
-                final long deadline = request.getDeadline();
-                if (now > deadline) {
+                final BasicFuture<E> future = request.getFuture();
+                if (future.isCancelled() && !request.isDone()) {
                     it.remove();
-                    request.failed(new TimeoutException());
-                    this.completedRequests.add(request);
+                } else {
+                    final long deadline = request.getDeadline();
+                    if (now > deadline) {
+                        request.failed(new TimeoutException());
+                    }
+                    if (request.isDone()) {
+                        it.remove();
+                        this.completedRequests.add(request);
+                    }
                 }
             }
         } finally {