Joost den Boer created HTTPCLIENT-1616:
------------------------------------------

             Summary: Request 'hangs' on invalid response from server
                 Key: HTTPCLIENT-1616
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1616
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: Fluent HC, HttpClient
    Affects Versions: 4.3.6
         Environment: Java 8
Running test with either Maven or IntelliJ.
            Reporter: Joost den Boer


When using the fluent api to do a request and the response of the previous 
request was status NoContent, but (!) the server did send some content anyway, 
then the next request is blocked for a long time. No response is ever returned. 
Eventually some timeout will unblock the thread, but the request has failed.

To reproduce this issue:
- create a server which returns a NoContent with some text body.
- do a first request
- do a second request. This request hangs/blocks the thread for long time.

We're using Fluent API to easily unit test our rest api. In a test class where 
a test was doing multiple requests, the first test would pass, but the second 
test would stall and eventually fail. Individually the tests were passing. I 
could not find any issue on the server side, so I tried another http client 
(Ning) which seemed to fix the issue. After rewriting the test to use Ning 
instead of HttpClient, the tests were successful, but when I changed it to 
reuse the same AsyncHttpClient, I got the same issue. However, because Ning 
does not block but throws an exception, I was finally able to find the issue 
which caused the problem: an endpoint returning a NoContent status, but with 
some text body.

Even though this is a server issue, the httpclient should not block the thread 
for such a long time and also return a proper error so this kind of issues so 
the cause is easier to track down. Now, if I would not have used Ning, I would 
not have found the issue.

The problem occurred when using Fluent Api, but I assume to cause for the 
thread to block and not return a proper error is in the HttpClient component.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to