Lubos Kolarik created HTTPCLIENT-2236:
-----------------------------------------

             Summary: Wrong exception on connect timeout when host is defined
                 Key: HTTPCLIENT-2236
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2236
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: HttpClient (async)
    Affects Versions: 5.1.3
            Reporter: Lubos Kolarik


Hi,

it seems that when connection timeout occurs on http call, resulting exception 
is different depending on whether {{HttpHost}} is passed to execute method or 
not.

I am using
{code:java}
public final <T> Future<T> execute(
        final HttpHost target,
        final AsyncRequestProducer requestProducer,
        final AsyncResponseConsumer<T> responseConsumer,
        final HandlerFactory<AsyncPushConsumer> pushHandlerFactory,
        final HttpContext context,
        final FutureCallback<T> callback) {code}
method to execute the request. But the resulting exception depends on whether 
`target` is null or not.

When target is null, and connection timeout occurs, then the result is 
{{org.apache.hc.client5.http.ConnectTimeoutException}} (correct), but when I 
provide the target instance myself, then the result is 
{{{}java.net.SocketTimeoutException{}}}.

I think the problem is within 
{{org.apache.hc.client5.http.impl.nio.MultihomeIOSessionRequester#connect}}

 

[Here|#L69],] when the target is provided, the {{remoteAddress}} is not null, 
and the `connectionInitiator.connect` is called directly. When 
SocketTimeoutException is throws here, it is passed directly to the callback

But when the address is not provided, then {{connectionInitiator.connect}} is 
called [later|#L107],] with custom callback. This custom callback also handles 
the {{SocketTimeoutException}} and rethrows {{ConnectTimeoutException}}

 

I would expect that for both cases the exception will be the same. Or am I 
doing something wrong here.
Thanks for info



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to