8143302: javax/net/ssl/Stapling/SSLSocketWithStapling.java fails intermittently: Server died
Fixes a file descriptor leak in the test and a thread exhaustion issue in the StatusResponseManager in JSSE. Reviewed-by: xuelei
This commit is contained in:
parent
052984a47c
commit
ec5c0f3089
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2016, 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
|
||||
@ -97,10 +97,11 @@ final class StatusResponseManager {
|
||||
t.setDaemon(true);
|
||||
return t;
|
||||
}
|
||||
});
|
||||
}, new ThreadPoolExecutor.DiscardPolicy());
|
||||
threadMgr.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
|
||||
threadMgr.setContinueExistingPeriodicTasksAfterShutdownPolicy(false);
|
||||
threadMgr.setKeepAliveTime(5000, TimeUnit.MILLISECONDS);
|
||||
threadMgr.allowCoreThreadTimeOut(true);
|
||||
responseCache = Cache.newSoftMemoryCache(cacheCapacity, cacheLifetime);
|
||||
}
|
||||
|
||||
|
@ -510,25 +510,27 @@ public class SSLSocketWithStapling {
|
||||
sslc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
|
||||
|
||||
SSLServerSocketFactory sslssf = sslc.getServerSocketFactory();
|
||||
SSLServerSocket sslServerSocket =
|
||||
(SSLServerSocket) sslssf.createServerSocket(serverPort);
|
||||
|
||||
serverPort = sslServerSocket.getLocalPort();
|
||||
try (SSLServerSocket sslServerSocket =
|
||||
(SSLServerSocket) sslssf.createServerSocket(serverPort)) {
|
||||
|
||||
/*
|
||||
* Signal Client, we're ready for his connect.
|
||||
*/
|
||||
serverReady = true;
|
||||
serverPort = sslServerSocket.getLocalPort();
|
||||
|
||||
try (SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
|
||||
InputStream sslIS = sslSocket.getInputStream();
|
||||
OutputStream sslOS = sslSocket.getOutputStream()) {
|
||||
int numberIn = sslIS.read();
|
||||
int numberSent = 85;
|
||||
log("Server received number: " + numberIn);
|
||||
sslOS.write(numberSent);
|
||||
sslOS.flush();
|
||||
log("Server sent number: " + numberSent);
|
||||
/*
|
||||
* Signal Client, we're ready for his connect.
|
||||
*/
|
||||
serverReady = true;
|
||||
|
||||
try (SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
|
||||
InputStream sslIS = sslSocket.getInputStream();
|
||||
OutputStream sslOS = sslSocket.getOutputStream()) {
|
||||
int numberIn = sslIS.read();
|
||||
int numberSent = 85;
|
||||
log("Server received number: " + numberIn);
|
||||
sslOS.write(numberSent);
|
||||
sslOS.flush();
|
||||
log("Server sent number: " + numberSent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user