RFR 8178699/10, Fail to send async requests if server doesn't response the first one

Daniel Fuchs daniel.fuchs at oracle.com
Fri Jun 23 10:40:14 UTC 2017


Hi Felix,

Looks good to me.

+1 for removing unnecessary calls that need synchronization and
cause deadlocks.

If you still have the full thread-dump where the issue could
be observed it might be good to record it in JDK-8178699
(if you no longer have it then don't bother).

best regards,

-- daniel

On 23/06/2017 09:59, Felix Yang wrote:
> Hi all,
> 
>     please review the following patch to API in 
> jdk.incubator.httpclient. The patch is more like a clean-up:
> 
>   * With current RequestProcessor implementation, constructing multiple
>     HTTP Exchange may be blocked if the first request doesn't response
>     by server side. This is introduced by synchronized setClient method
>     together with other synchronized methods in BodyProcessor.
>   * setClient/getClient in RequestProcessors.ProcessorBase and
>     ResponseProcessors.AbstractProcessor are never used in real logic.
>   * Such abstraction with implicit behavior looks to be confusing if
>     someones wants to implement
>     HttpResponse.BodyProcessor/HttpRequest.BodyProcessor themselves.
> 
> There are more detail root cause analysis in the bug.
> 
> Bug:
> 
> https://bugs.openjdk.java.net/browse/JDK-8178699
> 
> Webrev:
> 
> http://cr.openjdk.java.net/~xiaofeya/8178699/webrev.00/
> 
> Patch verified with jprt on all platforms and also attempted repeatedly 
> locally.
> 
> Thanks,
> 
> Felix
> 



More information about the net-dev mailing list