mirror of
https://github.com/apache/httpcomponents-client.git
synced 2025-02-16 15:07:27 +00:00
Extra sage-guards for concurrent connection endpoint acquisition and request execution cancellation
This commit is contained in:
parent
09f50cd80c
commit
d8d7ad37a3
@ -103,11 +103,11 @@ public void acquireEndpoint(
|
||||
final LeaseRequest connRequest = manager.lease(id, route, connectionRequestTimeout, object);
|
||||
state = object;
|
||||
if (cancellableDependency != null) {
|
||||
cancellableDependency.setDependency(connRequest);
|
||||
if (cancellableDependency.isCancelled()) {
|
||||
connRequest.cancel();
|
||||
throw new RequestFailedException("Request aborted");
|
||||
}
|
||||
cancellableDependency.setDependency(connRequest);
|
||||
}
|
||||
try {
|
||||
final ConnectionEndpoint connectionEndpoint = connRequest.get(connectionRequestTimeout);
|
||||
@ -115,6 +115,10 @@ public void acquireEndpoint(
|
||||
reusable = connectionEndpoint.isConnected();
|
||||
if (cancellableDependency != null) {
|
||||
cancellableDependency.setDependency(this);
|
||||
if (cancellableDependency.isCancelled()) {
|
||||
cancel();
|
||||
throw new RequestFailedException("Request aborted");
|
||||
}
|
||||
}
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("{} acquired endpoint {}", id, ConnPoolSupport.getId(connectionEndpoint));
|
||||
|
Loading…
x
Reference in New Issue
Block a user