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) {