8031661: java/net/Authenticator/B4769350.java failed intermittently
authormichaelm
Mon, 17 Feb 2014 11:27:18 +0000
changeset 22976 90ec9fec7c7f
parent 22975 1a8002758a3d
child 22978 947ce5082adf
8031661: java/net/Authenticator/B4769350.java failed intermittently Reviewed-by: michaelm Contributed-by: amanda.jiang@oracle.com
jdk/test/java/net/Authenticator/B4769350.java
--- a/jdk/test/java/net/Authenticator/B4769350.java	Mon Feb 17 09:43:12 2014 +0100
+++ b/jdk/test/java/net/Authenticator/B4769350.java	Mon Feb 17 11:27:18 2014 +0000
@@ -66,14 +66,15 @@
             this.allowerror = allowerror;
         }
 
+        @Override
         public void run () {
             try {
                 URI u = new URI ("http", authority, path, null, null);
                 URL url = u.toURL();
                 URLConnection urlc = url.openConnection();
-                InputStream is = urlc.getInputStream();
-                read (is);
-                is.close();
+                try (InputStream is = urlc.getInputStream()) {
+                    read (is);
+                }
             } catch (URISyntaxException  e) {
                 System.out.println (e);
                 error = true;
@@ -91,8 +92,6 @@
     class Server implements AutoCloseable {
         HttpServer server;
         Executor executor;
-        CyclicBarrier t1Cond1;
-        CyclicBarrier t1Cond2;
 
         public String getAddress() {
             return server.getAddress().getHostName();
@@ -126,8 +125,7 @@
                     new AuthenticationHandlerT3bc());
             server.createContext("/test/realm4/t3c",
                     new AuthenticationHandlerT3bc());
-            t1Cond1 = new CyclicBarrier(2);
-            t1Cond2 = new CyclicBarrier(2);
+            t1Cond1 = new CyclicBarrier(3);
             server.start();
         }
 
@@ -135,6 +133,7 @@
             return server.getAddress().getPort();
         }
 
+        @Override
         public void close() {
             if (executor != null)
                 ((ExecutorService)executor).shutdownNow();
@@ -163,7 +162,6 @@
                             break;
                         case 1:
                             t1Cond1.await();
-                            t1cond2latch.await();
                             AuthenticationHandler.okReply(exchange);
                             break;
                         default:
@@ -192,8 +190,6 @@
                             break;
                         case 1:
                             t1Cond1.await();
-                            t1cond1latch.countDown();
-                            t1cond2latch.await();
                             AuthenticationHandler.okReply(exchange);
                             break;
                         default:
@@ -216,13 +212,6 @@
                     case 0:
                         AuthenticationHandler.errorReply(exchange,
                                 "Basic realm=\"realm1\"");
-                        try {
-                            t1Cond2.await();
-                        } catch (InterruptedException |
-                                 BrokenBarrierException e)
-                        {
-                            throw new RuntimeException(e);
-                        }
                         break;
                     case 1:
                         AuthenticationHandler.okReply(exchange);
@@ -244,14 +233,6 @@
                     case 0:
                         AuthenticationHandler.errorReply(exchange,
                                 "Basic realm=\"realm2\"");
-                        try {
-                            t1Cond2.await();
-                        } catch (InterruptedException |
-                                 BrokenBarrierException e)
-                        {
-                            throw new RuntimeException(e);
-                        }
-                        t1cond2latch.countDown();
                         break;
                     case 1:
                         AuthenticationHandler.okReply(exchange);
@@ -377,9 +358,9 @@
             exchange.getResponseHeaders().add("Connection", "close");
             String response = "Hello .";
             exchange.sendResponseHeaders(200, response.getBytes().length);
-            OutputStream os = exchange.getResponseBody();
-            os.write(response.getBytes());
-            os.close();
+            try (OutputStream os = exchange.getResponseBody()) {
+                os.write(response.getBytes());
+            }
             exchange.close();
         }
     }
@@ -391,10 +372,9 @@
 
     static Client c1,c2,c3,c4,c5,c6,c7,c8,c9;
 
-    static CountDownLatch t1cond1latch;
-    static CountDownLatch t1cond2latch;
     static CountDownLatch t2condlatch;
     static CountDownLatch t3cond1;
+    static CyclicBarrier t1Cond1;
 
     static void doServerTests (String authority, Server server) throws Exception
     {
@@ -404,10 +384,8 @@
         c2 = new Client (authority, "/test/realm2/t1b", false);
         c3 = new Client (authority, "/test/realm1/t1c", false);
         c4 = new Client (authority, "/test/realm2/t1d", false);
-        t1cond1latch = new CountDownLatch(1);
-        t1cond2latch = new CountDownLatch(1);
         c1.start(); c2.start();
-        t1cond1latch.await();
+        t1Cond1.await();
         c3.start(); c4.start();
         c1.join(); c2.join(); c3.join(); c4.join();