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

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

     [ https://issues.apache.org/jira/browse/HTTPCORE-634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oleg Kalnichevski resolved HTTPCORE-634.
----------------------------------------
    Fix Version/s: 4.4.14
       Resolution: Fixed

> 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
>            Priority: Major
>             Fix For: 4.4.14
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> 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