mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 01:54:47 +02:00
8258582: HttpClient: the HttpClient doesn't explicitly shutdown its default executor when stopping.
Reviewed-by: chegar, michaelm
This commit is contained in:
parent
f15528eb64
commit
3f77a6002e
2 changed files with 16 additions and 0 deletions
|
@ -19,6 +19,7 @@ grant codeBase "jrt:/java.net.http" {
|
|||
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.util";
|
||||
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www";
|
||||
permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc";
|
||||
permission java.lang.RuntimePermission "modifyThread";
|
||||
permission java.net.SocketPermission "*","connect,resolve";
|
||||
permission java.net.URLPermission "http:*","*:*";
|
||||
permission java.net.URLPermission "https:*","*:*";
|
||||
|
|
|
@ -66,6 +66,7 @@ import java.util.concurrent.CompletableFuture;
|
|||
import java.util.concurrent.CompletionException;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
@ -155,6 +156,18 @@ final class HttpClientImpl extends HttpClient implements Trackable {
|
|||
command.run();
|
||||
}
|
||||
}
|
||||
|
||||
private void shutdown() {
|
||||
if (delegate instanceof ExecutorService service) {
|
||||
PrivilegedAction<?> action = () -> {
|
||||
service.shutdown();
|
||||
return null;
|
||||
};
|
||||
AccessController.doPrivileged(action, null,
|
||||
new RuntimePermission("modifyThread"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private final CookieHandler cookieHandler;
|
||||
|
@ -331,6 +344,8 @@ final class HttpClientImpl extends HttpClient implements Trackable {
|
|||
connections.stop();
|
||||
// Clears HTTP/2 cache and close its connections.
|
||||
client2.stop();
|
||||
// shutdown the executor if needed
|
||||
if (isDefaultExecutor) delegatingExecutor.shutdown();
|
||||
}
|
||||
|
||||
private static SSLParameters getDefaultParams(SSLContext ctx) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue