src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java
branchhttp-client-branch
changeset 56282 10cebcd18d47
parent 56271 e1eab097c6d7
child 56299 903ff8ec239d
--- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java	Mon Mar 12 17:52:50 2018 +0000
+++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java	Tue Mar 13 10:21:57 2018 +0000
@@ -450,6 +450,10 @@
         try {
             debugelapsed.log(Level.DEBUG, "ClientImpl (async) send %s", userRequest);
 
+            Executor executor = acc == null
+                    ? this.executor
+                    : new PrivilegedExecutor(this.executor, acc);
+
             MultiExchange<T> mex = new MultiExchange<>(userRequest,
                                                             requestImpl,
                                                             this,
@@ -462,11 +466,9 @@
                 res = res.whenComplete(
                         (b,t) -> debugCompleted("ClientImpl (async)", start, userRequest));
             }
+
             // makes sure that any dependent actions happen in the executor
-            if (acc != null) {
-                res.whenCompleteAsync((r, t) -> { /* do nothing */},
-                                      new PrivilegedExecutor(executor, acc));
-            }
+            res = res.whenCompleteAsync((r, t) -> { /* do nothing */}, executor);
 
             return res;
         } catch(Throwable t) {