You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Daniel Jelinski (Jira)" <ji...@apache.org> on 2020/06/28 18:35:00 UTC

[jira] [Created] (HTTPCORE-634) IllegalStateException: Entry [] has not been leased from this pool

Daniel Jelinski created HTTPCORE-634:
----------------------------------------

             Summary: IllegalStateException: Entry [] has not been leased from this pool
                 Key: HTTPCORE-634
                 URL: https://issues.apache.org/jira/browse/HTTPCORE-634
             Project: HttpComponents HttpCore
          Issue Type: Bug
          Components: HttpCore
    Affects Versions: 4.4.11
            Reporter: Daniel Jelinski


We are sporadically observing the exception mentioned in summary; while searching the Internet, I found [this SO page |https://stackoverflow.com/questions/46188047/httpclient-4-5-x-multithread-request-error-has-not-been-leased-from-this-pool] providing a semi-reliable reproducer. Minified form follows:
{code:java}
public static void main(String[] args) {
   final PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
   cm.setDefaultMaxPerRoute(1);

   class HttpClientThead implements Runnable {
      final String reqString;
      final CloseableHttpClient httpclient1 = HttpClients.custom()
            .setConnectionManager(cm)
            .build();

      HttpClientThead(String reqString) {
         this.reqString = reqString;
      }

      public void run() {
         for (int i = 1; i <= 10; i++) {
            HttpClientContext context = HttpClientContext.create();
            try {
               HttpGet httpget = new HttpGet(reqString);
               CloseableHttpResponse response = httpclient1.execute(httpget, context);
               response.close();
            } catch (Throwable e) {
               e.printStackTrace();
               System.exit(1);
            } finally {
               cm.closeExpiredConnections();
            }
         }
      }
   }

   HttpClientThead t1 = new HttpClientThead("https://issues.apache.org/");
   Thread thread1 = new Thread(t1);
   thread1.start();
   t1.run();
}

{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org