RFR: 8342075: HttpClient: improve HTTP/2 flow control checks [v2]

Daniel Fuchs dfuchs at openjdk.org
Tue Oct 22 14:19:21 UTC 2024


On Tue, 22 Oct 2024 13:47:32 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

>> Daniel Fuchs has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Apply suggestions from code review
>>   
>>   Co-authored-by: Andrey Turbanov <turbanoff at gmail.com>
>
> src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java line 1109:
> 
>> 1107:     // having been added to any Stream::inputQ. In that case, the number
>> 1108:     // of unprocessed bytes hasn't been incremented by the stream, and
>> 1109:     // does not need to be decremented.
> 
> Hello Daniel, this comment looks a bit contradictory or confusing, since it says that this method gets called before/without the dataframe being added to the Stream::inputQ. But looking at the releaseUnconsumed method's implementation this dropDataFrame is being called from the releaseUnconsumed method, whose comment states "... called when a DataFrame that was added to a Stream::inputQ".

Maybe I should say "is called directly" ? The idea is that if the data is dropped before being added to the inputQ, then `dropDataFrame` is called directly. If the data is dropped after having been added to the inputQ, then `releaseUnconsumed` is called.

> src/java.net.http/share/classes/jdk/internal/net/http/WindowUpdateSender.java line 107:
> 
>> 105:      * the bytes from the flow control window.
>> 106:      *
>> 107:      * @implSpec
> 
> Is it intentional to use `@implSpec` here on an internal class. Or is it just to convey the intention?

It's to convey intention. There are two subclasses.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21567#discussion_r1810818124
PR Review Comment: https://git.openjdk.org/jdk/pull/21567#discussion_r1810820079


More information about the net-dev mailing list