RFR: 8054022: HttpURLConnection timeouts with Expect: 100-Continue and no chunking

Michael McMahon michaelm at openjdk.org
Thu Apr 6 10:35:14 UTC 2023


On Tue, 4 Apr 2023 17:02:08 GMT, Darragh Clarke <duke at openjdk.org> wrote:

> Currently it is possible for `HttpURLConnection` with the `Expect: 100-Continue` header to timeout awaiting for a server response. According to [RFC-7231](https://www.rfc-editor.org/rfc/rfc7231#section-5.1.1) a client `SHOULD NOT wait for an indefinite period before sending the message body`.
> 
> This PR changes the existing `expect100Continue` method to wait for a maximum of 5 seconds for a server response, this will be shorter if a timeout is set. If no response is received, the message is sent regardless.
> 
> Tests have been added to account for different scenarios that currently timeout, and the changes have been tested against tiers 1,2 and 3.

test/jdk/java/net/HttpURLConnection/HttpURLConnectionExpectContinueTest.java line 61:

> 59: 
> 60:     private Thread serverThread = null;
> 61:     private volatile Control control = null;

Afaik, the volatile reference to the Control object does not imply that references to its member fields are volatile, and they are being accessed from different threads.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13330#discussion_r1159613650


More information about the net-dev mailing list