Skip to content

Commit 81837ac

Browse files
author
Amos Shi
committed
8304962: sun/net/www/http/KeepAliveCache/B5045306.java: java.lang.RuntimeException: Failed: Initial Keep Alive Connection is not being reused
Backport-of: cddaf686e16424e9543be50a48b1c02337e79cf1
1 parent 588913c commit 81837ac

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

test/jdk/sun/net/www/http/KeepAliveCache/B5045306.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
import java.io.IOException;
3333
import java.io.InputStream;
34-
import java.io.PrintWriter;
34+
import java.io.OutputStream;
3535
import java.lang.management.ManagementFactory;
3636
import java.lang.management.ThreadInfo;
3737
import java.lang.management.ThreadMXBean;
@@ -40,7 +40,6 @@
4040
import java.net.InetSocketAddress;
4141
import java.net.Proxy;
4242
import java.net.URL;
43-
import java.nio.charset.Charset;
4443
import java.util.ArrayList;
4544
import java.util.List;
4645
import java.util.concurrent.Executors;
@@ -176,9 +175,9 @@ public void handle(HttpExchange trans) {
176175
byte[] responseBody = new byte[RESPONSE_DATA_LENGTH];
177176
for (int i=0; i<responseBody.length; i++)
178177
responseBody[i] = 0x41;
179-
trans.sendResponseHeaders(200, 0);
180-
try(PrintWriter pw = new PrintWriter(trans.getResponseBody(), false, Charset.forName("UTF-8"))) {
181-
pw.print(responseBody);
178+
trans.sendResponseHeaders(200, responseBody.length);
179+
try (OutputStream os = trans.getResponseBody()) {
180+
os.write(responseBody);
182181
}
183182
} else if (path.equals("/secondCall")) {
184183
int port2 = trans.getRemoteAddress().getPort();
@@ -201,10 +200,10 @@ public void handle(HttpExchange trans) {
201200
responseBody[i] = 0x41;
202201
// override the Content-length header to be greater than the actual response body
203202
trans.sendResponseHeaders(200, responseBody.length+1);
204-
try(PrintWriter pw = new PrintWriter(trans.getResponseBody(), false, Charset.forName("UTF-8"))) {
205-
pw.print(responseBody);
206-
}
203+
OutputStream os = trans.getResponseBody();
204+
os.write(responseBody);
207205
// now close the socket
206+
// closing the stream here would throw; close the exchange instead
208207
trans.close();
209208
}
210209
} catch (Exception e) {

0 commit comments

Comments
 (0)