Skip to content

Commit ddd2d58

Browse files
sanghwa-minok2c
authored andcommitted
HTTPCLIENT-2388: fix builder default evictor sleepTime min 1 second
1 parent f176d92 commit ddd2d58

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.util.LinkedList;
3838
import java.util.List;
3939
import java.util.concurrent.ThreadFactory;
40+
import java.util.concurrent.TimeUnit;
4041
import java.util.function.Function;
4142
import java.util.function.UnaryOperator;
4243

@@ -158,6 +159,8 @@
158159
*/
159160
public class HttpAsyncClientBuilder {
160161

162+
private static final TimeValue ONE_SECOND = TimeValue.ofSeconds(1L);
163+
161164
private static class RequestInterceptorEntry {
162165

163166
enum Position { FIRST, LAST }
@@ -1094,8 +1097,10 @@ public CloseableHttpAsyncClient build() {
10941097
}
10951098
if (evictExpiredConnections || evictIdleConnections) {
10961099
if (connManagerCopy instanceof ConnPoolControl) {
1100+
TimeValue sleepTime = maxIdleTime.divide(10, TimeUnit.NANOSECONDS);
1101+
sleepTime = sleepTime.compareTo(ONE_SECOND) < 0 ? ONE_SECOND : sleepTime;
10971102
final IdleConnectionEvictor connectionEvictor = new IdleConnectionEvictor((ConnPoolControl<?>) connManagerCopy,
1098-
maxIdleTime, maxIdleTime);
1103+
sleepTime, maxIdleTime);
10991104
closeablesCopy.add(connectionEvictor::shutdown);
11001105
connectionEvictor.start();
11011106
}

httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/HttpClientBuilder.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.util.LinkedList;
3838
import java.util.List;
3939
import java.util.Map;
40+
import java.util.concurrent.TimeUnit;
4041
import java.util.function.Function;
4142
import java.util.function.UnaryOperator;
4243

@@ -145,6 +146,8 @@
145146
*/
146147
public class HttpClientBuilder {
147148

149+
private static final TimeValue ONE_SECOND = TimeValue.ofSeconds(1L);
150+
148151
private static class RequestInterceptorEntry {
149152

150153
enum Position { FIRST, LAST }
@@ -1105,8 +1108,10 @@ public CloseableHttpClient build() {
11051108
}
11061109
if (evictExpiredConnections || evictIdleConnections) {
11071110
if (connManagerCopy instanceof ConnPoolControl) {
1111+
TimeValue sleepTime = maxIdleTime.divide(10, TimeUnit.NANOSECONDS);
1112+
sleepTime = sleepTime.compareTo(ONE_SECOND) < 0 ? ONE_SECOND : sleepTime;
11081113
final IdleConnectionEvictor connectionEvictor = new IdleConnectionEvictor((ConnPoolControl<?>) connManagerCopy,
1109-
maxIdleTime, maxIdleTime);
1114+
sleepTime, maxIdleTime);
11101115
closeablesCopy.add(() -> {
11111116
connectionEvictor.shutdown();
11121117
try {

0 commit comments

Comments
 (0)