Marcelo Cenerino created HTTPCLIENT-1941:
--------------------------------------------
Summary: HttpAsyncClient throws generic exception when connection
lease request times out
Key: HTTPCLIENT-1941
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1941
Project: HttpComponents HttpClient
Issue Type: Improvement
Components: HttpClient (async)
Reporter: Marcelo Cenerino
The classic HttpClient throws a
"org.apache.http.conn.ConnectionPoolTimeoutException" when a connection cannot
be obtained within a given timeout. The async HttpClient, on the other hand,
throws a generic "java.util.concurrent.TimeoutException":
- org.apache.http.nio.pool.AbstractNIOConnPool:
{code:java}
final long deadline = request.getDeadline();
final long now = System.currentTimeMillis();
if (now > deadline) {
request.failed(new TimeoutException());
return false;
}
{code}
The specific "ConnectionPoolTimeoutException" was handier, both to catch and
handle it in the code as well as to analise stack traces.
The classic HttpClient translates the "java.util.concurrent.TimeoutException"
into "org.apache.http.conn.ConnectionPoolTimeoutException":
- org.apache.http.impl.conn.PoolingHttpClientConnectionManager:
{code:java}
protected HttpClientConnection leaseConnection(
final Future<CPoolEntry> future,
final long timeout,
final TimeUnit tunit) throws InterruptedException,
ExecutionException, ConnectionPoolTimeoutException {
final CPoolEntry entry;
try {
// omitted
} catch (final TimeoutException ex) {
throw new ConnectionPoolTimeoutException("Timeout waiting for
connection from pool");
}
}
{code}
It would be nice if the async client did the same.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]