Skip to content

Commit c1d3ffd

Browse files
author
Stephane Landelle
committed
Make NettyConnectionsPool's Timer externally configurable, close AsyncHttpClient#346
1 parent d2cc2ec commit c1d3ffd

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,24 +38,30 @@ public class NettyConnectionsPool implements ConnectionsPool<String, Channel> {
3838
private final ConcurrentHashMap<Channel, IdleChannel> channel2IdleChannel = new ConcurrentHashMap<Channel, IdleChannel>();
3939
private final ConcurrentHashMap<Channel, Long> channel2CreationDate = new ConcurrentHashMap<Channel, Long>();
4040
private final AtomicBoolean isClosed = new AtomicBoolean(false);
41-
private final Timer idleConnectionDetector = new Timer(true);
41+
private final Timer idleConnectionDetector;
4242
private final boolean sslConnectionPoolEnabled;
4343
private final int maxTotalConnections;
4444
private final int maxConnectionPerHost;
4545
private final int maxConnectionLifeTimeInMs;
4646
private final long maxIdleTime;
4747

4848
public NettyConnectionsPool(NettyAsyncHttpProvider provider) {
49-
this(provider.getConfig().getMaxTotalConnections(), provider.getConfig().getMaxConnectionPerHost(), provider.getConfig().getIdleConnectionInPoolTimeoutInMs(), provider.getConfig().getMaxConnectionLifeTimeInMs(), provider.getConfig().isSslConnectionPoolEnabled());
49+
this(provider.getConfig().getMaxTotalConnections(),//
50+
provider.getConfig().getMaxConnectionPerHost(),//
51+
provider.getConfig().getIdleConnectionInPoolTimeoutInMs(),//
52+
provider.getConfig().getMaxConnectionLifeTimeInMs(),//
53+
provider.getConfig().isSslConnectionPoolEnabled(),//
54+
new Timer(true));
5055
}
5156

52-
public NettyConnectionsPool(int maxTotalConnections, int maxConnectionPerHost, long maxIdleTime, int maxConnectionLifeTimeInMs, boolean sslConnectionPoolEnabled) {
57+
public NettyConnectionsPool(int maxTotalConnections, int maxConnectionPerHost, long maxIdleTime, int maxConnectionLifeTimeInMs, boolean sslConnectionPoolEnabled, Timer idleConnectionDetector) {
5358
this.maxTotalConnections = maxTotalConnections;
5459
this.maxConnectionPerHost = maxConnectionPerHost;
5560
this.sslConnectionPoolEnabled = sslConnectionPoolEnabled;
5661
this.maxIdleTime = maxIdleTime;
5762
this.maxConnectionLifeTimeInMs = maxConnectionLifeTimeInMs;
5863
this.idleConnectionDetector.schedule(new IdleChannelDetector(), maxIdleTime, maxIdleTime);
64+
this.idleConnectionDetector = idleConnectionDetector;
5965
}
6066

6167
private static class IdleChannel {

0 commit comments

Comments
 (0)