Chanseok Oh created HTTPCLIENT-2015:

             Summary: Connect timeout value is effective doubled
                 Key: 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

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("", 81), 3000);
    } catch (IOException ex) {
    } finally {
      System.out.println("JDK elapsed (s): " + (System.nanoTime() - started) / 

    try (CloseableHttpClient client = HttpClients.createDefault()) {
      HttpGet httpGet = new HttpGet("";);
      long started2 = System.nanoTime();
      try (CloseableHttpResponse res = client.execute(httpGet)) {
      } finally {
        System.out.println("Apache elapsed (s): " + (System.nanoTime() - 
started2) / 1000000000L);
    } catch (IOException ex) {

This message was sent by Atlassian Jira

To unsubscribe, e-mail:
For additional commands, e-mail:

Reply via email to