mirror of
https://github.com/apache/httpcomponents-client.git
synced 2025-02-28 05:39:07 +00:00
Check for timeToLive == 0
Allows setting connection timeToLive and validateAfterInactivity to zero to always close or validate a connection
This commit is contained in:
parent
d72a136817
commit
223669659c
@ -322,8 +322,8 @@ public synchronized ConnectionEndpoint get(
|
||||
if (poolEntry.hasConnection()) {
|
||||
final TimeValue timeToLive = connectionConfig.getTimeToLive();
|
||||
if (TimeValue.isNonNegative(timeToLive)) {
|
||||
final Deadline deadline = Deadline.calculate(poolEntry.getCreated(), timeToLive);
|
||||
if (deadline.isExpired()) {
|
||||
if (timeToLive.getDuration() == 0
|
||||
|| Deadline.calculate(poolEntry.getCreated(), timeToLive).isExpired()) {
|
||||
poolEntry.discardConnection(CloseMode.GRACEFUL);
|
||||
}
|
||||
}
|
||||
@ -331,8 +331,8 @@ public synchronized ConnectionEndpoint get(
|
||||
if (poolEntry.hasConnection()) {
|
||||
final TimeValue timeValue = resolveValidateAfterInactivity(connectionConfig);
|
||||
if (TimeValue.isNonNegative(timeValue)) {
|
||||
final Deadline deadline = Deadline.calculate(poolEntry.getUpdated(), timeValue);
|
||||
if (deadline.isExpired()) {
|
||||
if (timeValue.getDuration() == 0
|
||||
|| Deadline.calculate(poolEntry.getUpdated(), timeValue).isExpired()) {
|
||||
final ManagedHttpClientConnection conn = poolEntry.getConnection();
|
||||
boolean stale;
|
||||
try {
|
||||
|
@ -278,8 +278,8 @@ public void completed(final PoolEntry<HttpRoute, ManagedAsyncClientConnection> p
|
||||
if (poolEntry.hasConnection()) {
|
||||
final TimeValue timeToLive = connectionConfig.getTimeToLive();
|
||||
if (TimeValue.isNonNegative(timeToLive)) {
|
||||
final Deadline deadline = Deadline.calculate(poolEntry.getCreated(), timeToLive);
|
||||
if (deadline.isExpired()) {
|
||||
if (timeToLive.getDuration() == 0
|
||||
|| Deadline.calculate(poolEntry.getCreated(), timeToLive).isExpired()) {
|
||||
poolEntry.discardConnection(CloseMode.GRACEFUL);
|
||||
}
|
||||
}
|
||||
@ -288,8 +288,8 @@ public void completed(final PoolEntry<HttpRoute, ManagedAsyncClientConnection> p
|
||||
final ManagedAsyncClientConnection connection = poolEntry.getConnection();
|
||||
final TimeValue timeValue = connectionConfig.getValidateAfterInactivity();
|
||||
if (connection.isOpen() && TimeValue.isNonNegative(timeValue)) {
|
||||
final Deadline deadline = Deadline.calculate(poolEntry.getUpdated(), timeValue);
|
||||
if (deadline.isExpired()) {
|
||||
if (timeValue.getDuration() == 0
|
||||
|| Deadline.calculate(poolEntry.getUpdated(), timeValue).isExpired()) {
|
||||
final ProtocolVersion protocolVersion = connection.getProtocolVersion();
|
||||
if (protocolVersion != null && protocolVersion.greaterEquals(HttpVersion.HTTP_2_0)) {
|
||||
connection.submitCommand(new PingCommand(new BasicPingHandler(result -> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user