Uploaded image for project: 'HttpComponents HttpClient'
  1. HttpComponents HttpClient
  2. HTTPCLIENT-2015

Connect timeout value is effective doubled

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Not A Problem
    • Affects Version/s: 4.5.10
    • Fix Version/s: None
    • Component/s: HttpClient (classic)
    • Labels:
      None
    • 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)

      Description

      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.

        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);
          }
        }
      

       

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              francium25 Chanseok Oh
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: