RFR: 8331195: Improve com.sun.net.httpserver.HttpExchange usability [v4]

robert engels duke at openjdk.org
Fri May 3 14:05:54 UTC 2024


On Fri, 3 May 2024 13:53:39 GMT, Ethan McCue <duke at openjdk.org> wrote:

>> I think the solution is to document that the length must be greater than 0 or BBC an IllegalArgumentException is thrown. 
>> 
>> As I mention in the other comment - there is only really a single use for this - streaming a file of know length. 
>> 
>> This could be removed entirely by a sendResponse(code,Body) or a sendResponse(code,File)
>> 
>> I think this is being over analyzed though. It’s been here since JDK 11 - and people have made do. These should be minor changes to improve the readability and usability- not a wholesale redesign of the api.
>
>> and people have made do
> 
> I think there is cause for this level of analysis. Specifically
> 
> * This API, while part of the JDK, is not in widespread professional use
> * The intended use-case of the API is now "reducing the "getting startup" effort to serve up a web page." [1][2]
> 
> So in that context - that its always going to be a "new" API to those we hope to make use of it - stuff like conceptual gaps (the length is CHUNKED_CONTENT) and footguns (the method that is safer to use is more characters and is named in a way that requires context on how http servers work, not just what they do) at least **feels** important.
> 
> [1]: https://mail.openjdk.org/pipermail/core-libs-dev/2024-January/118266.html
> [2]: https://openjdk.org/jeps/408

I don’t understand. That is why the new methods are added - to remove the reliance. 

Instead of beginChunkedResponse() we could use use beginVariabkeLengthResponse() and maybe Javadoc that it uses chunked encoding to send. 

It would also also a variable response to be buffered and sent as a fixed response if it was under a certain length - transparently.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18955#discussion_r1589250031


More information about the net-dev mailing list