You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2013/08/02 08:40:48 UTC
svn commit: r1509557 - in
/httpcomponents/httpasyncclient/trunk/httpasyncclient/src:
main/java/org/apache/http/impl/nio/client/
main/java/org/apache/http/impl/nio/conn/ main/java/org/apache/http/nio/conn/
test/java/org/apache/http/impl/nio/conn/
Author: olegk
Date: Fri Aug 2 06:40:47 2013
New Revision: 1509557
URL: http://svn.apache.org/r1509557
Log:
HTTPCORE-340: Support for lease timeout distinct from connect timeout
Modified:
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultClientExchangeHandlerImpl.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/MinimalClientExchangeHandlerImpl.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/conn/NHttpClientConnectionManager.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/conn/TestPoolingHttpClientAsyncConnectionManager.java
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultClientExchangeHandlerImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultClientExchangeHandlerImpl.java?rev=1509557&r1=1509556&r2=1509557&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultClientExchangeHandlerImpl.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultClientExchangeHandlerImpl.java Fri Aug 2 06:40:47 2013
@@ -326,7 +326,9 @@ class DefaultClientExchangeHandlerImpl<T
this.connmgr.requestConnection(
route,
userToken,
- config.getConnectionRequestTimeout(), TimeUnit.MILLISECONDS,
+ config.getConnectTimeout(),
+ config.getConnectionRequestTimeout(),
+ TimeUnit.MILLISECONDS,
new FutureCallback<NHttpClientConnection>() {
public void completed(final NHttpClientConnection managedConn) {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/MinimalClientExchangeHandlerImpl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/MinimalClientExchangeHandlerImpl.java?rev=1509557&r1=1509556&r2=1509557&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/MinimalClientExchangeHandlerImpl.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/MinimalClientExchangeHandlerImpl.java Fri Aug 2 06:40:47 2013
@@ -347,7 +347,9 @@ public class MinimalClientExchangeHandle
this.connmgr.requestConnection(
this.route,
userToken,
- config.getConnectionRequestTimeout(), TimeUnit.MILLISECONDS,
+ config.getConnectTimeout(),
+ config.getConnectionRequestTimeout(),
+ TimeUnit.MILLISECONDS,
new FutureCallback<NHttpClientConnection>() {
public void completed(final NHttpClientConnection managedConn) {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java?rev=1509557&r1=1509556&r2=1509557&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/PoolingNHttpClientConnectionManager.java Fri Aug 2 06:40:47 2013
@@ -217,6 +217,7 @@ public class PoolingNHttpClientConnectio
final HttpRoute route,
final Object state,
final long connectTimeout,
+ final long leaseTimeout,
final TimeUnit tunit,
final FutureCallback<NHttpClientConnection> callback) {
Args.notNull(route, "HTTP route");
@@ -237,8 +238,8 @@ public class PoolingNHttpClientConnectio
" protocol is not supported"));
return future;
}
- this.pool.lease(route, state, connectTimeout,
- tunit != null ? tunit : TimeUnit.MILLISECONDS,
+ this.pool.lease(route, state,
+ connectTimeout, leaseTimeout, tunit != null ? tunit : TimeUnit.MILLISECONDS,
new InternalPoolEntryCallback(future));
return future;
}
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/conn/NHttpClientConnectionManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/conn/NHttpClientConnectionManager.java?rev=1509557&r1=1509556&r2=1509557&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/conn/NHttpClientConnectionManager.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/nio/conn/NHttpClientConnectionManager.java Fri Aug 2 06:40:47 2013
@@ -55,7 +55,7 @@ public interface NHttpClientConnectionMa
*/
Future<NHttpClientConnection> requestConnection(
HttpRoute route, Object state,
- long connectTimeout, TimeUnit timeUnit,
+ long connectTimeout, long leaseTimeout, TimeUnit timeUnit,
FutureCallback<NHttpClientConnection> callback);
/**
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/conn/TestPoolingHttpClientAsyncConnectionManager.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/conn/TestPoolingHttpClientAsyncConnectionManager.java?rev=1509557&r1=1509556&r2=1509557&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/conn/TestPoolingHttpClientAsyncConnectionManager.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/test/java/org/apache/http/impl/nio/conn/TestPoolingHttpClientAsyncConnectionManager.java Fri Aug 2 06:40:47 2013
@@ -128,13 +128,14 @@ public class TestPoolingHttpClientAsyncC
final HttpHost target = new HttpHost("localhost");
final HttpRoute route = new HttpRoute(target);
final Future<NHttpClientConnection> future = connman.requestConnection(
- route, "some state", 1000L, TimeUnit.MILLISECONDS, connCallback);
+ route, "some state", 1000L, 2000L, TimeUnit.MILLISECONDS, connCallback);
Assert.assertNotNull(future);
Mockito.verify(pool).lease(
Mockito.same(route),
Mockito.eq("some state"),
Mockito.eq(1000L),
+ Mockito.eq(2000L),
Mockito.eq(TimeUnit.MILLISECONDS),
poolEntryCallbackCaptor.capture());
final FutureCallback<CPoolEntry> callaback = poolEntryCallbackCaptor.getValue();
@@ -164,13 +165,14 @@ public class TestPoolingHttpClientAsyncC
final HttpHost target = new HttpHost("localhost");
final HttpRoute route = new HttpRoute(target);
final Future<NHttpClientConnection> future = connman.requestConnection(
- route, "some state", 1000L, TimeUnit.MILLISECONDS, connCallback);
+ route, "some state", 1000L, 2000L, TimeUnit.MILLISECONDS, connCallback);
Assert.assertNotNull(future);
Mockito.verify(pool).lease(
Mockito.same(route),
Mockito.eq("some state"),
Mockito.eq(1000L),
+ Mockito.eq(2000L),
Mockito.eq(TimeUnit.MILLISECONDS),
poolEntryCallbackCaptor.capture());
final FutureCallback<CPoolEntry> callaback = poolEntryCallbackCaptor.getValue();
@@ -194,7 +196,7 @@ public class TestPoolingHttpClientAsyncC
final HttpHost target = new HttpHost("localhost");
final HttpRoute route = new HttpRoute(target);
final Future<NHttpClientConnection> future = connman.requestConnection(
- route, "some state", 1000L, TimeUnit.MILLISECONDS, null);
+ route, "some state", 1000L, 2000L, TimeUnit.MILLISECONDS, null);
Assert.assertNotNull(future);
future.cancel(true);
@@ -202,6 +204,7 @@ public class TestPoolingHttpClientAsyncC
Mockito.same(route),
Mockito.eq("some state"),
Mockito.eq(1000L),
+ Mockito.eq(2000L),
Mockito.eq(TimeUnit.MILLISECONDS),
poolEntryCallbackCaptor.capture());
final FutureCallback<CPoolEntry> callaback = poolEntryCallbackCaptor.getValue();
@@ -218,13 +221,14 @@ public class TestPoolingHttpClientAsyncC
final HttpHost target = new HttpHost("localhost");
final HttpRoute route = new HttpRoute(target);
final Future<NHttpClientConnection> future = connman.requestConnection(
- route, "some state", 1000L, TimeUnit.MILLISECONDS, null);
+ route, "some state", 1000L, 2000L, TimeUnit.MILLISECONDS, null);
Assert.assertNotNull(future);
Mockito.verify(pool).lease(
Mockito.same(route),
Mockito.eq("some state"),
Mockito.eq(1000L),
+ Mockito.eq(2000L),
Mockito.eq(TimeUnit.MILLISECONDS),
poolEntryCallbackCaptor.capture());
final FutureCallback<CPoolEntry> callaback = poolEntryCallbackCaptor.getValue();
@@ -239,13 +243,14 @@ public class TestPoolingHttpClientAsyncC
final HttpHost target = new HttpHost("localhost");
final HttpRoute route = new HttpRoute(target);
final Future<NHttpClientConnection> future = connman.requestConnection(
- route, "some state", 1000L, TimeUnit.MILLISECONDS, null);
+ route, "some state", 1000L, 2000L, TimeUnit.MILLISECONDS, null);
Assert.assertNotNull(future);
Mockito.verify(pool).lease(
Mockito.same(route),
Mockito.eq("some state"),
Mockito.eq(1000L),
+ Mockito.eq(2000L),
Mockito.eq(TimeUnit.MILLISECONDS),
poolEntryCallbackCaptor.capture());
final FutureCallback<CPoolEntry> callaback = poolEntryCallbackCaptor.getValue();