On Thu, 17 Oct 2024 16:33:47 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:

> Please find here a fix that improves flow control in the HTTP/2 
> implementation.
> 
> The change makes sure that flow control issues are reported to the server as 
> FLOW_CONTROL_ERROR.
> It also clarify how some system properties that allow to initialize flow 
> control windows are handled, by documenting the full range of valid values 
> (when applicable) and explaining what happens if the property points to a 
> value that is out of range.
> 
> Bad flow control values in the SETTINGS frame will also cause a 
> FLOW_CONTROL_ERROR to be reported.

src/java.net.http/share/classes/jdk/internal/net/http/Stream.java line 1464:

> 1462:         Log.logError("cancelling exchange on stream {0} due to protocol 
> error: {1}\n", streamid, cause);
> 1463:         // send a RESET frame and close the stream
> 1464:         cancelImpl(cause,code);

Suggestion:

        cancelImpl(cause, code);

test/jdk/java/net/httpclient/http2/ConnectionFlowControlTest.java line 116:

> 114:         System.out.printf("%ntesting %s%n", uri);
> 115:         ConcurrentHashMap<String, CompletableFuture<String>>  
> responseSent = new ConcurrentHashMap<>();
> 116:         ConcurrentHashMap<String, HttpResponse<InputStream>>  responses 
> = new ConcurrentHashMap<>();

Suggestion:

        ConcurrentHashMap<String, CompletableFuture<String>> responseSent = new 
ConcurrentHashMap<>();
        ConcurrentHashMap<String, HttpResponse<InputStream>> responses = new 
ConcurrentHashMap<>();

test/jdk/java/net/httpclient/http2/ConnectionFlowControlTest.java line 299:

> 297:                 byte[] bytes = is.readAllBytes();
> 298:                 System.out.println("Server " + t.getLocalAddress() + " 
> received:\n"
> 299:                         + t.getRequestURI() + ": " +  new String(bytes, 
> StandardCharsets.UTF_8));

Suggestion:

                        + t.getRequestURI() + ": " + new String(bytes, 
StandardCharsets.UTF_8));

test/jdk/java/net/httpclient/http2/ConnectionFlowControlTest.java line 345:

> 343:     // A custom Http2TestExchangeImpl that overrides sendResponseHeaders 
> to
> 344:     // allow headers to be sent with a number of CONTINUATION frames.
> 345:     static class  FCHttp2TestExchange extends Http2TestExchangeImpl {

Suggestion:

    static class FCHttp2TestExchange extends Http2TestExchangeImpl {

test/jdk/java/net/httpclient/http2/StreamFlowControlTest.java line 161:

> 159:     {
> 160:         System.out.printf("%ntesting testAsync(%s, %s)%n", uri, 
> sameClient);
> 161:         ConcurrentHashMap<String, CompletableFuture<String>>  
> responseSent = new ConcurrentHashMap<>();

Suggestion:

        ConcurrentHashMap<String, CompletableFuture<String>> responseSent = new 
ConcurrentHashMap<>();

test/jdk/java/net/httpclient/http2/StreamFlowControlTest.java line 322:

> 320:     // A custom Http2TestExchangeImpl that overrides sendResponseHeaders 
> to
> 321:     // allow headers to be sent with a number of CONTINUATION frames.
> 322:     static class  FCHttp2TestExchange extends Http2TestExchangeImpl {

Suggestion:

    static class FCHttp2TestExchange extends Http2TestExchangeImpl {

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21567#discussion_r1808285394
PR Review Comment: https://git.openjdk.org/jdk/pull/21567#discussion_r1808284352
PR Review Comment: https://git.openjdk.org/jdk/pull/21567#discussion_r1808284729
PR Review Comment: https://git.openjdk.org/jdk/pull/21567#discussion_r1808284916
PR Review Comment: https://git.openjdk.org/jdk/pull/21567#discussion_r1808283897
PR Review Comment: https://git.openjdk.org/jdk/pull/21567#discussion_r1808283640

Reply via email to