On Fri, 3 May 2024 13:23:59 GMT, robert engels <d...@openjdk.org> wrote:

>> src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java 
>> line 82:
>> 
>>> 80:      * @see #sendResponseHeaders(int, long)
>>> 81:      *  */
>>> 82:     public static final long CHUNKED_CONTENT = 0L;
>> 
>> I feel a little uneasy about these constant names, if only because the 
>> parameter they are intended to be used for is called "`responseLength`"
>> 
>> "The response length is chunked content." Feels strange. Really you don't 
>> know the response length. Perhaps `responseLength` is what should change?
>
> That is why the new methods were added. Hard to fix this and remain backward 
> compatible. This will allow an automated change to the constants for better 
> readability. 
> 
> It is still a length - it’s that some length values are sentinels

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.

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

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

Reply via email to