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 2011/06/07 16:47:49 UTC
svn commit: r1133033 - in
/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio:
client/DefaultAsyncRequestDirector.java conn/ClientConnAdaptor.java
conn/DefaultClientConnection.java pool/SessionPool.java
Author: olegk
Date: Tue Jun 7 14:47:48 2011
New Revision: 1133033
URL: http://svn.apache.org/viewvc?rev=1133033&view=rev
Log:
Fixed handling of closed connections
Modified:
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/ClientConnAdaptor.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/DefaultClientConnection.java
httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/pool/SessionPool.java
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java?rev=1133033&r1=1133032&r2=1133033&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/client/DefaultAsyncRequestDirector.java Tue Jun 7 14:47:48 2011
@@ -377,6 +377,7 @@ class DefaultAsyncRequestDirector<T> imp
}
this.managedConn.setIdleDuration(duration, TimeUnit.MILLISECONDS);
} else {
+ this.managedConn.markNonReusable();
releaseConnection();
invalidateAuthIfSuccessful(this.proxyAuthState);
invalidateAuthIfSuccessful(this.targetAuthState);
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/ClientConnAdaptor.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/ClientConnAdaptor.java?rev=1133033&r1=1133032&r2=1133033&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/ClientConnAdaptor.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/ClientConnAdaptor.java Tue Jun 7 14:47:48 2011
@@ -128,7 +128,7 @@ class ClientConnAdaptor implements Manag
}
public boolean isReusable() {
- return this.reusable;
+ return this.reusable && this.conn != null && this.conn.isOpen();
}
public synchronized void markNonReusable() {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/DefaultClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/DefaultClientConnection.java?rev=1133033&r1=1133032&r2=1133033&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/DefaultClientConnection.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/conn/DefaultClientConnection.java Tue Jun 7 14:47:48 2011
@@ -117,7 +117,22 @@ public class DefaultClientConnection
@Override
public String toString() {
- return this.id;
+ StringBuilder buf = new StringBuilder();
+ buf.append(this.id);
+ buf.append(" [");
+ switch (this.status) {
+ case ACTIVE:
+ buf.append("ACTIVE");
+ break;
+ case CLOSING:
+ buf.append("CLOSING");
+ break;
+ case CLOSED:
+ buf.append("CLOSED");
+ break;
+ }
+ buf.append("]");
+ return buf.toString();
}
class LoggingNHttpMessageWriter implements NHttpMessageWriter<HttpRequest> {
Modified: httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/pool/SessionPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/pool/SessionPool.java?rev=1133033&r1=1133032&r2=1133033&view=diff
==============================================================================
--- httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/pool/SessionPool.java (original)
+++ httpcomponents/httpasyncclient/trunk/httpasyncclient/src/main/java/org/apache/http/impl/nio/pool/SessionPool.java Tue Jun 7 14:47:48 2011
@@ -176,9 +176,6 @@ public abstract class SessionPool<T, E e
pool.freeEntry(entry, reusable);
if (reusable) {
this.availableSessions.add(entry);
- } else {
- IOSession iosession = entry.getIOSession();
- iosession.close();
}
processPendingRequests();
}