[
https://issues.apache.org/jira/browse/HTTPCLIENT-1485?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13941302#comment-13941302
]
Sebb commented on HTTPCLIENT-1485:
----------------------------------
I can now reproduce the error - by waiting much longer.
The problem occurs when the timeout occurs in the native code, which explains
why there is no resource string,
The timeouts are fairly long: about 3 mins on Windows XP (JDK 1.5 & 1.7.0_51)
and 75 secs on Java 1.6.0 (FreeBSD).
This suggests a work-round - ensure that you use a shorter timeout than the
native timeout.
It also suggests that the problem has not been fixed as I get the problem with
the current version of Java 1.7.0
Probably worthwhile someone raising a bug with Oracle.
> Wrong type of exception raised because of hardcoded string-compare
> ------------------------------------------------------------------
>
> Key: HTTPCLIENT-1485
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1485
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient
> Affects Versions: 4.3.2, 4.3.3
> Reporter: Dominik Bennersdorfer
>
> In the lines
> org.apache.http.impl.conn.HttpClientConnectionOperator.java:134-143 we found
> that the message of the ConnectException is compared to the hardcoded string
> "Connection timed out".
> This can causes wrong break down to the http-client own Exception-types on
> Systems with other languages.
> } catch (final ConnectException ex) {
> if (last) {
> final String msg = ex.getMessage();
> if ("Connection timed out".equals(msg)) {
> throw new ConnectTimeoutException(ex, host, addresses);
> } else {
> throw new HttpHostConnectException(ex, host, addresses);
> }
> }
> }
> To illustrate the Problem see the following Example:
> On our server the locale is set to "de_AT.ISO-8859-15@euro"
> with a simple wget i get this (see the message in last line)
> root@MRW-MJA-vml1:/tmp# wget http://www.google.at:81
> --2014-03-14 12:46:44-- http://www.google.at:81/
> Auflösen des Hostnamen www.google.at... 173.194.39.183
> Verbindungsaufbau zu www.google.at|173.194.39.183|:81... fehlgeschlagen: Die
> Wartezeit für die Verbindung ist abgelaufen.
> after changing the locale to "en_US.ISO-8859-15" i get the following:
> root@MRW-MJA-vml1:/tmp# wget http://www.google.at:81
> --2014-03-14 12:43:33-- http://www.google.at:81/
> Resolving www.google.at... 173.194.32.223
> Connecting to www.google.at|173.194.32.223|:81... failed: Connection timed
> out.
> Example with httpclient 4.3.3 (parts from our tracing):
> Exception<org.apache.http.conn.HttpHostConnectException> Message<Connect to
> **** failed: Die Wartezeit für die Verbindung ist abgelaufen>
> Cause<java.net.ConnectException: Die Wartezeit für die Verbindung ist
> abgelaufen>
> at
> org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:138)
> at
> org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:314)
> at
> org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:357)
> at
> org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:218)
> at
> org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:194)
> at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:85)
> at
> org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
> at
> org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186)
> at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
> at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
>
> We excpected to get a ConnectTimeoutException rather than a
> HttpHostConnectException
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]