On Fri, 13 Feb 2026 12:27:45 GMT, Daniel Fuchs <[email protected]> wrote:
>> Some HttpClient tests - like `test/jdk/java/net/httpclient/SmokeTest.java`, >> depend on non-library test classes that were developed for testing the >> HttpServer, such as `../../../com/sun/net/httpserver/FileServerHandler.java` >> which requires compiling using `@compile`. >> >> Instead of depending on HttpServer test classes, these tests should use >> functionalities from the common servers provided by the >> `HttpServerAdapters`, offered by the `test/jdk/java/net/httpclient/lib` >> library. An adapted version of the >> `../../../com/sun/net/httpserver/FileServerHandler.java` could be provided >> by the `HttpServerAdapters` helper. >> >> There are also 5 implementations of stand-alone echo handlers in the >> httpclient test base. This change remove 4 of them, keep only the >> implementation in `HttpServerAdapters`, and updates all tests that were >> relying on the removed implementations to use that provided by >> `HttpServerAdapters`. >> >> This is a test-only change. > > Daniel Fuchs has updated the pull request incrementally with two additional > commits since the last revision: > > - Update > test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java > > Co-authored-by: Daniel Jelinski <[email protected]> > - Update > test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java > > Co-authored-by: Daniel Jelinski <[email protected]> test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 256: > 254: /** > 255: * This constant can be passed to {@link > #sendResponseHeaders(int, long)} > 256: * to indicates an empty response. Suggestion: * to indicate an empty response. test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 261: > 259: /** > 260: * This constant can be passed to {@link > #sendResponseHeaders(int, long)} > 261: * to indicates that the response will be chunked. Suggestion: * to indicate that the response will be chunked. test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 281: > 279: * This method always return {@link #RSPBODY_CHUNKED} > 280: */ > 281: public static long chunkedRsp(long bytes) { This method has limited utility; chunked response is usually used when the content length is not known. Inline? test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 907: > 905: long responseLength = useXFixed() > 906: ? t.responseLength(bytes.length) > 907: : HttpTestExchange.fixedRsp(bytes.length); was it supposed to use a chunked response when useXFixed is false? test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 997: > 995: > 996: int x = 0; > 997: while (is.read () != -1) x++; Suggestion: while (is.read() != -1) x++; test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 999: > 997: while (is.read () != -1) x++; > 998: is.close(); > 999: File f = new File (docroot, path); Suggestion: File f = new File(docroot, path); test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 1001: > 999: File f = new File (docroot, path); > 1000: if (!f.exists()) { > 1001: notfound (t, path); Suggestion: notfound(t, path); test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 1007: > 1005: String method = t.getRequestMethod(); > 1006: if (method.equals("HEAD")) { > 1007: rspHeaders.addHeader("Content-Length", Long.toString > (f.length())); Suggestion: rspHeaders.addHeader("Content-Length", Long.toString(f.length())); test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 1030: > 1028: String[] list = f.list(); > 1029: try (final OutputStream os = t.getResponseBody(); > 1030: final PrintStream p = new PrintStream (os)) { Suggestion: final PrintStream p = new PrintStream(os)) { test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 1047: > 1045: byte[] buf = new byte [16 * 1024]; > 1046: int len; > 1047: while ((len=fis.read (buf)) != -1) { Suggestion: while ((len=fis.read(buf)) != -1) { test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 1048: > 1046: int len; > 1047: while ((len=fis.read (buf)) != -1) { > 1048: os.write (buf, 0, len); Suggestion: os.write(buf, 0, len); test/jdk/java/net/httpclient/lib/jdk/httpclient/test/lib/common/HttpServerAdapters.java line 1078: > 1076: String s = "<h2>File not found</h2>"; > 1077: s = s + p + "<p>"; > 1078: os.write (s.getBytes()); Suggestion: os.write(s.getBytes()); ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803265706 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803266495 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803537302 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803920737 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803923762 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803926551 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803927082 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803928373 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803930218 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803931421 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803932269 PR Review Comment: https://git.openjdk.org/jdk/pull/29702#discussion_r2803933539
