title: why `setConnectionRequestTimeout` doesn't stop my 1 min get request?
body: <p>I have this code:</p>
  
  <pre><code>    RequestConfig requestConfig = RequestConfig.custom()
              .setConnectTimeout(40 * 1000)
              .setConnectionRequestTimeout(40 * 1000)
              .setSocketTimeout(40 * 1000)
              .build();
      client = HttpClientBuilder
              .create()
              .setDefaultRequestConfig(requestConfig)
              .build();
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>    try {
  
          Stopwatch stopWatch = Stopwatch.createStarted();
          response = client.execute(new HttpGet(routingRequestUrl));
          stopWatch.stop();
  
      } catch (Exception e) {
          answer.errorMsg = e.getMessage();
          answer.latency =  null;
      }
  </code></pre>
  
  <p>when my client configuration is as doesn't contain <code>.setSocketTimeout(40 * 
  1000)</code> - the stopWatch shows request can take more then 1 minute.</p>
  
  <p>It happens when I try <code>setConnectTimeout</code> and <code>setConnectionRequestTimeout</code> each alone or all together.</p>
  
  <p>Why is only <code>.setSocketTimeout(40 * 1000)</code> effectively checks timeout 40 seconds? and the other alone not?</p>
  
  <p>These are the prints:</p>
  
  <p><code>Read timed out</code></p>
  
  <p><code>Timeout waiting for connection from pool</code></p>
  
  <p>Is the first triggered by <code>setConnectionRequestTimeout</code> and the second by <code>setSocketTimeout</code> ?</p>