8170705: sun/net/www/protocol/http/StackTraceTest.java fails intermittently with Invalid Http response
authorchegar
Tue, 19 Mar 2019 11:15:08 +0000
changeset 54185 8717d7424861
parent 54184 5f4dedb4dcf5
child 54186 3827cd66e788
8170705: sun/net/www/protocol/http/StackTraceTest.java fails intermittently with Invalid Http response Reviewed-by: dfuchs
test/jdk/sun/net/www/protocol/http/StackTraceTest.java
--- a/test/jdk/sun/net/www/protocol/http/StackTraceTest.java	Tue Mar 19 17:03:18 2019 +0800
+++ b/test/jdk/sun/net/www/protocol/http/StackTraceTest.java	Tue Mar 19 11:15:08 2019 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,22 +21,30 @@
  * questions.
  */
 
-/**
+/*
  * @test
  * @bug 4773417 5003746
+ * @library /test/lib
+ * @build jdk.test.lib.Utils
+ * @run main StackTraceTest
  * @summary  HttpURLConnection.getInputStream() produces IOException with
  *           bad stack trace; HttpURLConnection.getInputStream loses
  *           exception message, exception class
  */
 import java.net.*;
 import java.io.IOException;
+import jdk.test.lib.Utils;
 
 public class StackTraceTest {
     public static void main(String[] args) throws Exception {
-        URL url;
-        try (ServerSocket ss = new ServerSocket(0)) {  // refusing socket
-            url = new URL("http://localhost:" + ss.getLocalPort() + "/");
-        }
+        InetSocketAddress refusing = Utils.refusingEndpoint();
+        int port = refusing.getPort();
+        String host = refusing.getAddress().getHostAddress();
+        if (host.contains(":"))
+            host = "[" + host + "]";
+        URL url = URI.create("http://" + host + ":" + port + "/").toURL();
+        System.out.println("URL: " + url);
+
         URLConnection uc = url.openConnection();
 
         // Trigger implicit connection by trying to retrieve bogus