RFR: 8294916: Cancelling a request must eventually cause its response body subscriber to be unregistered [v4]

Daniel Fuchs dfuchs at openjdk.org
Mon Oct 17 19:09:14 UTC 2022


On Mon, 17 Oct 2022 07:46:46 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

>> test/jdk/java/net/httpclient/CancelStreamedBodyTest.java line 307:
>> 
>>> 305:                     for (int k = 0; k < j; k++) {
>>> 306:                         read = is.read();
>>> 307:                         assertEquals(read, BODY.charAt(k));
>> 
>> Hello Daniel, I don't follow this loop. The number of times it is iterating seems to be dependent on a statically decided value of `j` (which can't exceed 2). Each iteration it reads 1 byte and compares that byte with the pre-defined response content. Shouldn't this loop instead be doing `k < BODY.length();`?
>
> Now that I think with a fresher mind, I see what this loop does - it intentionally doesn't read the entire response content and instead closes the stream before the whole response is read, to trigger the original issue.

Yes - the first time around we don't read anything and we cancel right away. The second time around we read something and then we cancel.

-------------

PR: https://git.openjdk.org/jdk/pull/10659


More information about the net-dev mailing list