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/09 20:01:45 UTC
[19/50] 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/217e68e0
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/217e68e0
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/217e68e0
Branch: refs/heads/4.4.x
Commit: 217e68e0c486cd51817fad6fb97eb55640256451
Parents: e555fab
Author: Oleg Kalnichevski <ol...@apache.org>
Authored: Sat Jan 28 10:34:41 2017 +0000
Committer: Oleg Kalnichevski <ol...@apache.org>
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/217e68e0/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 {