On Mon, 3 Jul 2023 09:40:48 GMT, Conor Cleary <[email protected]> wrote:
>> So for HTTP/2, the `cancelImpl()` method in `Stream` looks like this.
>>
>>
>> @Override
>> void cancel() {
>> if ((streamid == 0)) {
>> cancel(new IOException("Stream cancelled before streamid
>> assigned"));
>> } else {
>> cancel(new IOException("Stream " + streamid + " cancelled"));
>> }
>> }
>>
>>
>> When the new IOException is passed to cancel, it sets the `errorRef` field
>> to the IOException which then gets returned to us as the cause of the
>> CompletableFuture's cause for cancelling. I think this behaviour is
>> acceptable as the IOException returned will say "Stream x cancelled" which
>> is accurate. Possible that I dont need to have this "CancelException" here
>>
>> May be more difficult to verify the cause of cancellation beyond that which
>> I'll think about.
>
> There is a check that the cancelling BodyHandler sets the cancelled field
> which may be sufficient
Could also just check that the returned a call to `getMessage()` returns a
string that contains cancelled but its not a very nice solution
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14625#discussion_r1250671729