Skip to content

Commit 088948a

Browse files
author
oleksiys
committed
+ related to the issue
AsyncHttpClient#1109
1 parent d500dd7 commit 088948a

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/main/java/com/ning/http/client/providers/grizzly/ConnectionManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.glassfish.grizzly.Grizzly;
3333
import org.glassfish.grizzly.GrizzlyFuture;
3434
import org.glassfish.grizzly.attributes.Attribute;
35+
import org.glassfish.grizzly.connectionpool.ConnectionInfo;
3536
import org.glassfish.grizzly.connectionpool.Endpoint;
3637
import org.glassfish.grizzly.connectionpool.MultiEndpointPool;
3738
import org.glassfish.grizzly.connectionpool.SingleEndpointPool;
@@ -209,6 +210,11 @@ void destroy() {
209210
pool.close();
210211
}
211212

213+
boolean isReadyInPool(final Connection c) {
214+
final ConnectionInfo<SocketAddress> ci = pool.getConnectionInfo(c);
215+
return ci != null && ci.isReady();
216+
}
217+
212218
static boolean isKeepAlive(final Connection connection) {
213219
return !IS_NOT_KEEP_ALIVE.isSet(connection);
214220
}

src/main/java/com/ning/http/client/providers/grizzly/GrizzlyAsyncHttpProvider.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,15 @@ protected void initializeTransport(final AsyncHttpClientConfig clientConfig) {
253253
new IdleTimeoutFilter.TimeoutResolver() {
254254
@Override
255255
public long getTimeout(final FilterChainContext ctx) {
256+
final Connection connection = ctx.getConnection();
257+
258+
if (connectionManager.isReadyInPool(connection)) {
259+
// if the connection is in pool - let ConnectionManager take care of its life cycle
260+
return IdleTimeoutFilter.FOREVER;
261+
}
262+
256263
final HttpTransactionContext context
257-
= HttpTransactionContext.currentTransaction(ctx.getConnection());
264+
= HttpTransactionContext.currentTransaction(connection);
258265
if (context != null) {
259266
if (context.isWSRequest) {
260267
return clientConfig.getWebSocketTimeout();

0 commit comments

Comments
 (0)