diff --git a/test/jdk/sun/net/www/http/KeepAliveCache/B5045306.java b/test/jdk/sun/net/www/http/KeepAliveCache/B5045306.java index e53e9f6a4438fc2f735c7f028003f4672b6bbc76..151e2ab6b2382cf2927aa1e86633f8c8646e1f3f 100644 --- a/test/jdk/sun/net/www/http/KeepAliveCache/B5045306.java +++ b/test/jdk/sun/net/www/http/KeepAliveCache/B5045306.java @@ -31,7 +31,7 @@ import java.io.IOException; import java.io.InputStream; -import java.io.PrintWriter; +import java.io.OutputStream; import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; @@ -40,7 +40,6 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URL; -import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executors; @@ -176,9 +175,9 @@ class SimpleHttpTransactionHandler implements HttpHandler byte[] responseBody = new byte[RESPONSE_DATA_LENGTH]; for (int i=0; i<responseBody.length; i++) responseBody[i] = 0x41; - trans.sendResponseHeaders(200, 0); - try(PrintWriter pw = new PrintWriter(trans.getResponseBody(), false, Charset.forName("UTF-8"))) { - pw.print(responseBody); + trans.sendResponseHeaders(200, responseBody.length); + try (OutputStream os = trans.getResponseBody()) { + os.write(responseBody); } } else if (path.equals("/secondCall")) { int port2 = trans.getRemoteAddress().getPort(); @@ -201,10 +200,10 @@ class SimpleHttpTransactionHandler implements HttpHandler responseBody[i] = 0x41; // override the Content-length header to be greater than the actual response body trans.sendResponseHeaders(200, responseBody.length+1); - try(PrintWriter pw = new PrintWriter(trans.getResponseBody(), false, Charset.forName("UTF-8"))) { - pw.print(responseBody); - } + OutputStream os = trans.getResponseBody(); + os.write(responseBody); // now close the socket + // closing the stream here would throw; close the exchange instead trans.close(); } } catch (Exception e) {