title: HttpMethod.releaseConnection() usage
body: <p>I am using HttpClient 3..0.1 with <code>MultiThreadedHttpConnectionManager</code> and using the below code to fetch a page and also get the final redirected url of that page.</p>
  
  <p>Multiple threads access this code in parallel. After running this code for some time, I start getting <code>ConnectionPoolTimeoutException</code> continously and then no pages are fetched further.</p>
  
  <p>Is this related to my <code>connectionManagerParam</code> values which I should increase or I am doing something wrong in my code ? </p>
  
  <pre><code>GetMethod get = null;
      try {
          get = new GetMethod();
          get.setURI(uri);
          get.setFollowRedirects(false);
          int status = httpClient.executeMethod(null, get, new HttpState());
  
          String location = null;
          int retry = 2;
          if (get.getResponseHeader("location") != null) {
              location = get.getResponseHeader("location").getValue();
          }
          while (retry &gt; 0 &amp;&amp; ((int) (status / 100) != 2) &amp;&amp; ((int) (status / 100) == 3) &amp;&amp; location.length() &gt; 0) {
              // To get the final redirected url.
              uri = URLUtil.createAbsoluteURIWithFix(location, null);
              get = new GetMethod();
              get.setURI(uri);
              get.setFollowRedirects(false);
              status = httpClient.executeMethod(null, get, new HttpState());
              if (get.getResponseHeader("location") != null) {
                  location = get.getResponseHeader("location").getValue();
              }
              retry--;
          }
  
          if (status == 200) {
              uri = get.getURI();
              String html = URLUtil.getResponseBodyAsString(get, charsets);
          }
      } catch (Exception e) {
  
      } finally {
          if (get != null) {
              get.releaseConnection();
          }
      }
  </code></pre>
  
  <p>Exception stackTrace</p>
  
  <pre><code>org.apache.commons.httpclient.ConnectionPoolTimeoutException: Timeout waiting for connection
      at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:490)
      at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:394)
      at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:152)
      at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
  </code></pre>
  
  <p>Do I need to call get.releaseConnection() after every execute method ? or the current coding is fine ?</p>