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.util";
|
||||||
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www";
|
permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www";
|
||||||
permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc";
|
permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc";
|
||||||
|
permission java.lang.RuntimePermission "modifyThread";
|
||||||
permission java.net.SocketPermission "*","connect,resolve";
|
permission java.net.SocketPermission "*","connect,resolve";
|
||||||
permission java.net.URLPermission "http:*","*:*";
|
permission java.net.URLPermission "http:*","*:*";
|
||||||
permission java.net.URLPermission "https:*","*:*";
|
permission java.net.URLPermission "https:*","*:*";
|
||||||
|
|
|
@ -66,6 +66,7 @@ import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.CompletionException;
|
import java.util.concurrent.CompletionException;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ThreadFactory;
|
import java.util.concurrent.ThreadFactory;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
@ -155,6 +156,18 @@ final class HttpClientImpl extends HttpClient implements Trackable {
|
||||||
command.run();
|
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;
|
private final CookieHandler cookieHandler;
|
||||||
|
@ -331,6 +344,8 @@ final class HttpClientImpl extends HttpClient implements Trackable {
|
||||||
connections.stop();
|
connections.stop();
|
||||||
// Clears HTTP/2 cache and close its connections.
|
// Clears HTTP/2 cache and close its connections.
|
||||||
client2.stop();
|
client2.stop();
|
||||||
|
// shutdown the executor if needed
|
||||||
|
if (isDefaultExecutor) delegatingExecutor.shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SSLParameters getDefaultParams(SSLContext ctx) {
|
private static SSLParameters getDefaultParams(SSLContext ctx) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue