You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Bo Xing (JIRA)" <ji...@apache.org> on 2014/09/23 18:11:33 UTC
[jira] [Commented] (HTTPCORE-391) SocketTimeoutExceptions thrown in
case of connection timeouts
[ https://issues.apache.org/jira/browse/HTTPCORE-391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14144959#comment-14144959 ]
Bo Xing commented on HTTPCORE-391:
----------------------------------
This is awesome! Thanks, Oleg!
> 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, 4.4-beta1
>
>
> 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