@@ -550,9 +550,11 @@ public void operationComplete(ChannelFuture cf) {
550
550
try {
551
551
future .touch ();
552
552
int requestTimeout = AsyncHttpProviderUtils .requestTimeout (config , future .getRequest ());
553
- if (requestTimeout != -1 && !future .isDone () && !future .isCancelled ()) {
553
+ int schedulePeriod = requestTimeout != -1 ? (config .getIdleConnectionTimeoutInMs () != -1 ? Math .min (requestTimeout , config .getIdleConnectionTimeoutInMs ()) : requestTimeout ) : config .getIdleConnectionTimeoutInMs ();
554
+
555
+ if (schedulePeriod != -1 && !future .isDone () && !future .isCancelled ()) {
554
556
ReaperFuture reaperFuture = new ReaperFuture (future );
555
- Future <?> scheduledFuture = config .reaper ().scheduleAtFixedRate (reaperFuture , 0 , requestTimeout , TimeUnit .MILLISECONDS );
557
+ Future <?> scheduledFuture = config .reaper ().scheduleAtFixedRate (reaperFuture , 0 , schedulePeriod , TimeUnit .MILLISECONDS );
556
558
reaperFuture .setScheduledFuture (scheduledFuture );
557
559
future .setReaperFuture (reaperFuture );
558
560
}
@@ -1606,7 +1608,15 @@ private final static int computeAndSetContentLength(Request request, HttpRequest
1606
1608
public static <T > NettyResponseFuture <T > newFuture (URI uri , Request request , AsyncHandler <T > asyncHandler , HttpRequest nettyRequest , AsyncHttpClientConfig config , NettyAsyncHttpProvider provider , ProxyServer proxyServer ) {
1607
1609
1608
1610
int requestTimeout = AsyncHttpProviderUtils .requestTimeout (config , request );
1609
- NettyResponseFuture <T > f = new NettyResponseFuture <T >(uri , request , asyncHandler , nettyRequest , requestTimeout , config .getIdleConnectionTimeoutInMs (), provider , request .getConnectionPoolKeyStrategy (), proxyServer );
1611
+ NettyResponseFuture <T > f = new NettyResponseFuture <T >(uri ,//
1612
+ request ,//
1613
+ asyncHandler ,//
1614
+ nettyRequest ,//
1615
+ requestTimeout ,//
1616
+ config .getIdleConnectionTimeoutInMs (),//
1617
+ provider ,//
1618
+ request .getConnectionPoolKeyStrategy (),//
1619
+ proxyServer );
1610
1620
1611
1621
if (request .getHeaders ().getFirstValue ("Expect" ) != null && request .getHeaders ().getFirstValue ("Expect" ).equalsIgnoreCase ("100-Continue" )) {
1612
1622
f .getAndSetWriteBody (false );
0 commit comments