提交 040ade78 编写于 作者: I igerasim

8031661: java/net/Authenticator/B4769350.java failed intermittently

Reviewed-by: michaelm
Contributed-by: amanda.jiang@oracle.com
上级 03e032b2
...@@ -66,14 +66,15 @@ public class B4769350 { ...@@ -66,14 +66,15 @@ public class B4769350 {
this.allowerror = allowerror; this.allowerror = allowerror;
} }
@Override
public void run () { public void run () {
try { try {
URI u = new URI ("http", authority, path, null, null); URI u = new URI ("http", authority, path, null, null);
URL url = u.toURL(); URL url = u.toURL();
URLConnection urlc = url.openConnection(); URLConnection urlc = url.openConnection();
InputStream is = urlc.getInputStream(); try (InputStream is = urlc.getInputStream()) {
read (is); read (is);
is.close(); }
} catch (URISyntaxException e) { } catch (URISyntaxException e) {
System.out.println (e); System.out.println (e);
error = true; error = true;
...@@ -91,8 +92,6 @@ public class B4769350 { ...@@ -91,8 +92,6 @@ public class B4769350 {
class Server implements AutoCloseable { class Server implements AutoCloseable {
HttpServer server; HttpServer server;
Executor executor; Executor executor;
CyclicBarrier t1Cond1;
CyclicBarrier t1Cond2;
public String getAddress() { public String getAddress() {
return server.getAddress().getHostName(); return server.getAddress().getHostName();
...@@ -126,8 +125,7 @@ public class B4769350 { ...@@ -126,8 +125,7 @@ public class B4769350 {
new AuthenticationHandlerT3bc()); new AuthenticationHandlerT3bc());
server.createContext("/test/realm4/t3c", server.createContext("/test/realm4/t3c",
new AuthenticationHandlerT3bc()); new AuthenticationHandlerT3bc());
t1Cond1 = new CyclicBarrier(2); t1Cond1 = new CyclicBarrier(3);
t1Cond2 = new CyclicBarrier(2);
server.start(); server.start();
} }
...@@ -135,6 +133,7 @@ public class B4769350 { ...@@ -135,6 +133,7 @@ public class B4769350 {
return server.getAddress().getPort(); return server.getAddress().getPort();
} }
@Override
public void close() { public void close() {
if (executor != null) if (executor != null)
((ExecutorService)executor).shutdownNow(); ((ExecutorService)executor).shutdownNow();
...@@ -163,7 +162,6 @@ public class B4769350 { ...@@ -163,7 +162,6 @@ public class B4769350 {
break; break;
case 1: case 1:
t1Cond1.await(); t1Cond1.await();
t1cond2latch.await();
AuthenticationHandler.okReply(exchange); AuthenticationHandler.okReply(exchange);
break; break;
default: default:
...@@ -192,8 +190,6 @@ public class B4769350 { ...@@ -192,8 +190,6 @@ public class B4769350 {
break; break;
case 1: case 1:
t1Cond1.await(); t1Cond1.await();
t1cond1latch.countDown();
t1cond2latch.await();
AuthenticationHandler.okReply(exchange); AuthenticationHandler.okReply(exchange);
break; break;
default: default:
...@@ -216,13 +212,6 @@ public class B4769350 { ...@@ -216,13 +212,6 @@ public class B4769350 {
case 0: case 0:
AuthenticationHandler.errorReply(exchange, AuthenticationHandler.errorReply(exchange,
"Basic realm=\"realm1\""); "Basic realm=\"realm1\"");
try {
t1Cond2.await();
} catch (InterruptedException |
BrokenBarrierException e)
{
throw new RuntimeException(e);
}
break; break;
case 1: case 1:
AuthenticationHandler.okReply(exchange); AuthenticationHandler.okReply(exchange);
...@@ -244,14 +233,6 @@ public class B4769350 { ...@@ -244,14 +233,6 @@ public class B4769350 {
case 0: case 0:
AuthenticationHandler.errorReply(exchange, AuthenticationHandler.errorReply(exchange,
"Basic realm=\"realm2\""); "Basic realm=\"realm2\"");
try {
t1Cond2.await();
} catch (InterruptedException |
BrokenBarrierException e)
{
throw new RuntimeException(e);
}
t1cond2latch.countDown();
break; break;
case 1: case 1:
AuthenticationHandler.okReply(exchange); AuthenticationHandler.okReply(exchange);
...@@ -377,9 +358,9 @@ public class B4769350 { ...@@ -377,9 +358,9 @@ public class B4769350 {
exchange.getResponseHeaders().add("Connection", "close"); exchange.getResponseHeaders().add("Connection", "close");
String response = "Hello ."; String response = "Hello .";
exchange.sendResponseHeaders(200, response.getBytes().length); exchange.sendResponseHeaders(200, response.getBytes().length);
OutputStream os = exchange.getResponseBody(); try (OutputStream os = exchange.getResponseBody()) {
os.write(response.getBytes()); os.write(response.getBytes());
os.close(); }
exchange.close(); exchange.close();
} }
} }
...@@ -391,10 +372,9 @@ public class B4769350 { ...@@ -391,10 +372,9 @@ public class B4769350 {
static Client c1,c2,c3,c4,c5,c6,c7,c8,c9; static Client c1,c2,c3,c4,c5,c6,c7,c8,c9;
static CountDownLatch t1cond1latch;
static CountDownLatch t1cond2latch;
static CountDownLatch t2condlatch; static CountDownLatch t2condlatch;
static CountDownLatch t3cond1; static CountDownLatch t3cond1;
static CyclicBarrier t1Cond1;
static void doServerTests (String authority, Server server) throws Exception static void doServerTests (String authority, Server server) throws Exception
{ {
...@@ -404,10 +384,8 @@ public class B4769350 { ...@@ -404,10 +384,8 @@ public class B4769350 {
c2 = new Client (authority, "/test/realm2/t1b", false); c2 = new Client (authority, "/test/realm2/t1b", false);
c3 = new Client (authority, "/test/realm1/t1c", false); c3 = new Client (authority, "/test/realm1/t1c", false);
c4 = new Client (authority, "/test/realm2/t1d", false); c4 = new Client (authority, "/test/realm2/t1d", false);
t1cond1latch = new CountDownLatch(1);
t1cond2latch = new CountDownLatch(1);
c1.start(); c2.start(); c1.start(); c2.start();
t1cond1latch.await(); t1Cond1.await();
c3.start(); c4.start(); c3.start(); c4.start();
c1.join(); c2.join(); c3.join(); c4.join(); c1.join(); c2.join(); c3.join(); c4.join();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册