RFR: 8331195: Improve com.sun.net.httpserver.HttpExchange usability
    Michael McMahon 
    michaelm at openjdk.org
       
    Fri Apr 26 14:59:53 UTC 2024
    
    
  
On Thu, 25 Apr 2024 15:49:54 GMT, robert engels <duke at openjdk.org> wrote:
> improve the HttpExchange api with documented constants and convenience methods to avoid common bugs
Changes requested by michaelm (Reviewer).
src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java line 74:
> 72: public abstract class HttpExchange implements AutoCloseable, Request {
> 73:     /**
> 74:      * use in sendResponseHeaders() to signify no content in the response.
Suggestion:
     * Use in sendResponseHeaders() to signify no content in the response.
src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java line 80:
> 78:     /**
> 79:      * use in sendResponseHeaders() to signify an indeterminate response length. The caller must
> 80:      * close the getResponseBody() or this exchange.
Suggestion:
     * Use in sendResponseHeaders() to signify an indeterminate response length.
src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java line 219:
> 217: 
> 218:     /**
> 219:      * convenience method to send a "no content response"
Suggestion:
     * Convenience method to send the response headers with no response body.
     * The exchange is also closed.
src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java line 225:
> 223:      */
> 224:     public final void sendResponseHeadersNoContent(int code) throws IOException {
> 225:         sendResponseHeaders(code,NO_CONTENT);
Suggestion:
        sendResponseHeaders(code, NO_CONTENT);
        close();
src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java line 228:
> 226:     }
> 227:     /**
> 228:      * convenience method to send a chunked response. the caller must close the returned output stream.
Suggestion:
     * Convenience method to send a chunked response. The caller must write the response
     * body to the returned output stream and then close it.
src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java line 246:
> 244:      * @see HttpExchange#sendResponseHeaders(int, long)
> 245:      */
> 246:     public final void sendResponseHeaders(int code,byte[] data) throws IOException {
I'd prefer to drop this method. Some time in the future we might come up with a better mechanism for handling request and response bodies and translating them to higher level types.
-------------
PR Review: https://git.openjdk.org/jdk/pull/18955#pullrequestreview-2025238367
PR Review Comment: https://git.openjdk.org/jdk/pull/18955#discussion_r1581152653
PR Review Comment: https://git.openjdk.org/jdk/pull/18955#discussion_r1581155836
PR Review Comment: https://git.openjdk.org/jdk/pull/18955#discussion_r1581146115
PR Review Comment: https://git.openjdk.org/jdk/pull/18955#discussion_r1581147127
PR Review Comment: https://git.openjdk.org/jdk/pull/18955#discussion_r1581149586
PR Review Comment: https://git.openjdk.org/jdk/pull/18955#discussion_r1581152077
    
    
More information about the net-dev
mailing list