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