hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bo Xing (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HTTPCORE-391) SocketTimeoutExceptions thrown in case of connection timeouts
Date Tue, 23 Sep 2014 00:37:33 GMT
Bo Xing created HTTPCORE-391:
--------------------------------

             Summary: SocketTimeoutExceptions thrown in case of connection timeouts
                 Key: HTTPCORE-391
                 URL: https://issues.apache.org/jira/browse/HTTPCORE-391
             Project: HttpComponents HttpCore
          Issue Type: Improvement
          Components: HttpCore NIO
    Affects Versions: 4.3.2
            Reporter: Bo Xing
             Fix For: 4.3.3


When a connection timeout happens, a SocketTimeoutException is thrown with no context at all.
As a result, applications are unable to differentiate between connection timeouts and actual
socket timeouts. Is there a reason why it is not a ConnectionTimeoutException that is thrown
here? I understand that ConnectionTimeoutException is part of the sync client library. But
can we create a similar one in the async client library, and let the RouteSpecificPool class
throw it? 

Please advise. Thanks!

The stack trace is as follows.

java.net.SocketTimeoutException
	at org.apache.http.nio.pool.RouteSpecificPool.timeout(RouteSpecificPool.java:170)
	at org.apache.http.nio.pool.AbstractNIOConnPool.requestTimeout(AbstractNIOConnPool.java:546)
	at org.apache.http.nio.pool.AbstractNIOConnPool$InternalSessionRequestCallback.timeout(AbstractNIOConnPool.java:779)
	at org.apache.http.impl.nio.reactor.SessionRequestImpl.timeout(SessionRequestImpl.java:177)
	at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processTimeouts(DefaultConnectingIOReactor.java:212)
	at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:157)
	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:348)
	at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:189)
	at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.doExecute(CloseableHttpAsyncClientBase.java:67)
	at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.access$000(CloseableHttpAsyncClientBase.java:38)
	at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:57)
	at java.lang.Thread.run(Thread.java:724)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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


Mime
View raw message