Gazolinia created HTTPCLIENT-1476:
-------------------------------------

             Summary: Thread lock within httpClient call
                 Key: HTTPCLIENT-1476
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1476
             Project: HttpComponents HttpClient
          Issue Type: Test
          Components: HttpClient
    Affects Versions: 4.3 Final
         Environment: Linux, Virtual machine
            Reporter: Gazolinia
             Fix For: 4.3 Final


We have a multi threaded application which makes call to many http server. To 
make this http connection we are using HttpClient code with Pooling 
connectionManager. Recently we identified that all the threads in our 
application got stuck within the HttpClient code execution (Will paste/upload 
the thread dump soon.) as a result our application stopped running. Please let 
us know if this is not the right forum for this question.

1) Our code snippet is as follows.

       HttpClient httpClient;
       
       Registry<ConnectionSocketFactory> registry = 
RegistryBuilder.<ConnectionSocketFactory>create()
                .register(HTTP_PROTOCOL, 
PlainConnectionSocketFactory.getSocketFactory())
                .register(HTTPS_PROTOCOL, 
SSLConnectionSocketFactory.getSocketFactory()).build();
        PoolingHttpClientConnectionManager cm = new 
PoolingHttpClientConnectionManager(registry);
        cm.setDefaultMaxPerRoute(10);
        cm.setMaxTotal(10);

        if (connectionParams != null && !connectionParams.isEmpty()) {
            for (Map.Entry<String, List<String>> entry : 
connectionParams.entrySet()) {
                List<String> attributes = entry.getValue();
                boolean isSecure = false;
                if (HTTPS_PROTOCOL.equals(attributes.get(0))) {
                    isSecure = true;
                }
                HttpRoute route = new HttpRoute(new HttpHost(entry.getKey()), 
null, isSecure);
                cm.setMaxPerRoute(route, 10);
            }
        }
        httpClient = HttpClientBuilder.create().setConnectionManager(cm);

        HttpGet request = new HttpGet("some uri");
        request.setConfig(setConnectionTimeout(1000));
        HttpResponse response = mHTTPClient.execute(request, new 
BasicHttpContext());






--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to