You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Noah Levitt (JIRA)" <ji...@apache.org> on 2013/01/01 02:46:12 UTC

[jira] [Created] (HTTPCLIENT-1287) DefaultUserTokenHandler.getUserToken() throws ConnectionShutdownException after certain aborted fetches

Noah Levitt created HTTPCLIENT-1287:
---------------------------------------

             Summary: DefaultUserTokenHandler.getUserToken() throws ConnectionShutdownException after certain aborted fetches
                 Key: HTTPCLIENT-1287
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1287
             Project: HttpComponents HttpClient
          Issue Type: Bug
    Affects Versions: 4.3 Alpha1
            Reporter: Noah Levitt


DefaultUserTokenHandler.getUserToken() throws ConnectionShutdownException after certain aborted fetches, resulting in this:

java.io.InterruptedIOException: Connection has been shut down
	at org.apache.http.impl.client.execchain.MainClientExec.execute(MainClientExec.java:322)
	at org.apache.http.impl.client.execchain.ProtocolExec.execute(ProtocolExec.java:170)
	at org.apache.http.impl.client.execchain.RetryExec.execute(RetryExec.java:77)
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:69)
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:1)
	[...]
Caused by: org.apache.http.impl.conn.ConnectionShutdownException
	at org.apache.http.impl.conn.CPoolProxy.invoke(CPoolProxy.java:121)
	at $Proxy0.getSSLSession(Unknown Source)
	at org.apache.http.impl.client.DefaultUserTokenHandler.getUserToken(DefaultUserTokenHandler.java:81)
	at org.apache.http.impl.client.execchain.MainClientExec.execute(MainClientExec.java:305)
	... 33 more

I haven't narrowed down a minimal test case, but I can tell you that this change fixes it:

Index: httpclient/httpclient/src/main/java/org/apache/http/impl/client/DefaultUserTokenHandler.java
===================================================================
--- httpclient/httpclient/src/main/java/org/apache/http/impl/client/DefaultUserTokenHandler.java	(revision 1427210)
+++ httpclient/httpclient/src/main/java/org/apache/http/impl/client/DefaultUserTokenHandler.java	(working copy)
@@ -76,7 +76,7 @@
 
         if (userPrincipal == null) {
             HttpConnection conn = clientContext.getConnection();
-            if (conn instanceof SocketClientConnection) {
+            if (conn instanceof SocketClientConnection && conn.isOpen()) {
                 SSLSession sslsession = ((SocketClientConnection) conn).getSSLSession();
                 if (sslsession != null) {
                     userPrincipal = sslsession.getLocalPrincipal();


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org