You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Dominik Bennersdorfer (JIRA)" <ji...@apache.org> on 2014/03/17 11:26:42 UTC

[jira] [Created] (HTTPCLIENT-1485) Wrong type of exception raised because of hardcoded string-compare

Dominik Bennersdorfer created HTTPCLIENT-1485:
-------------------------------------------------

             Summary: 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.3, 4.3.2
            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: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org