Skip to content

Commit edc685c

Browse files
author
Stephane Landelle
committed
Make idleConnectionTimeout effective when less than requestTimeout, backport AsyncHttpClient#120
1 parent eb03603 commit edc685c

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/main/java/com/ning/http/client/providers/netty/NettyAsyncHttpProvider.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -563,10 +563,11 @@ public void operationComplete(ChannelFuture cf) {
563563

564564
try {
565565
future.touch();
566-
int delay = Math.min(config.getIdleConnectionTimeoutInMs(), requestTimeoutInMs(config, future.getRequest().getPerRequestConfig()));
567-
if (delay != -1 && !future.isDone() && !future.isCancelled()) {
566+
int requestTimeout = requestTimeoutInMs(config, future.getRequest().getPerRequestConfig());
567+
int schedulePeriod = requestTimeout != -1 ? (config.getIdleConnectionTimeoutInMs() != -1 ? Math.min(requestTimeout, config.getIdleConnectionTimeoutInMs()) : requestTimeout) : config.getIdleConnectionTimeoutInMs();
568+
if (schedulePeriod != -1 && !future.isDone() && !future.isCancelled()) {
568569
ReaperFuture reaperFuture = new ReaperFuture(future);
569-
Future<?> scheduledFuture = config.reaper().scheduleAtFixedRate(reaperFuture, 0, delay, TimeUnit.MILLISECONDS);
570+
Future<?> scheduledFuture = config.reaper().scheduleAtFixedRate(reaperFuture, 0, schedulePeriod, TimeUnit.MILLISECONDS);
570571
reaperFuture.setScheduledFuture(scheduledFuture);
571572
future.setReaperFuture(reaperFuture);
572573
}

0 commit comments

Comments
 (0)