You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (Jira)" <ji...@apache.org> on 2019/09/12 17:51:00 UTC
[jira] [Resolved] (HTTPCLIENT-2015) Connect timeout value is
effective doubled
[ https://issues.apache.org/jira/browse/HTTPCLIENT-2015?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oleg Kalnichevski resolved HTTPCLIENT-2015.
-------------------------------------------
Resolution: Not A Problem
> Connect timeout value is effective doubled
> ------------------------------------------
>
> Key: HTTPCLIENT-2015
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2015
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient (classic)
> Affects Versions: 4.5.10
> Environment: Debian-based Linux
> openjdk version "1.8.0_222"
> OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1-b10)
> OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
> Reporter: Chanseok Oh
> Priority: Minor
>
> The connection times out, say, after 6 seconds when calling `setConnectionTimeout(3000)`. The timeout value is effectively doubled. I've provided sample code, which demonstrates that the JDK Socket times out after 3 seconds, but the Apache HTTP Client times out after 6 seconds.
> This may seem like a minor bug to others, but our product functionality depends on timeouts in part and allows the user to adjust the timeouts, and this timeout-doubling-effect is causing some trouble to us.
> {code:java}
> public static void main(String[] args) {
> long started = System.nanoTime();
> try (Socket socket = new Socket()) {
> socket.connect(new InetSocketAddress("example.com", 81), 3000);
> } catch (IOException ex) {
> ex.printStackTrace(System.out);
> } finally {
> System.out.println("JDK elapsed (s): " + (System.nanoTime() - started) / 1000000000L);
> }
> try (CloseableHttpClient client = HttpClients.createDefault()) {
> HttpGet httpGet = new HttpGet("https://example.com:81");
> httpGet.setConfig(RequestConfig.custom().setConnectTimeout(3000).build());
> long started2 = System.nanoTime();
> try (CloseableHttpResponse res = client.execute(httpGet)) {
> } finally {
> System.out.println("Apache elapsed (s): " + (System.nanoTime() - started2) / 1000000000L);
> }
> } catch (IOException ex) {
> ex.printStackTrace(System.out);
> }
> }
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.2#803003)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org