On Tue, 10 Feb 2026 16:22:43 GMT, Josiah Noel <[email protected]> wrote:

>> I must confess I don't know what "legacy" mean because currently the upgrade 
>> simply always fails so how could a handler make any use of this?
>
> First, thank you for taking another look at this.
> 
>> Legacy handlers that do not honour the upgrade request will get the wrong 
>> kind of input stream here, won't they?
> 
> Not quite, as this stream switch only happens on GET requests matching 
> upgrade semantics. Thus it effectively remains optional as GET request 
> handlers wouldn't attempt to read the body. And even if they persisted for 
> some reason and tried to read the body,  I have kept compatibility by having 
> the stream return nothing if it the connection was not upgraded.

> I must confess I don't know what "legacy" mean because currently the upgrade 
> simply always fails so how could a handler make any use of this?

I know it's been deprecated, but consider the upgrade to HTTP/2 for instance. 
If the peer doesn't support HTTP/2 it can just ignore the upgrade headers and 
continue with HTTP/1.1. Upgrade is a rather general mechanism, and for 
instance, AFAIK, you can even upgrade to HTTP/2 with POST, although it brings 
its own lot of issues (the request body has to be read using HTTP/1.1 and then 
only the connection can be upgraded).

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27989#discussion_r2792738746

Reply via email to