447 } |
446 } |
448 pushStream.cancelImpl(ex); |
447 pushStream.cancelImpl(ex); |
449 return; |
448 return; |
450 } |
449 } |
451 |
450 |
452 CompletableFuture<HttpResponse<T>> cf = pushStream.responseCF(); |
451 CompletableFuture<HttpResponse<T>> pushResponseCF = acceptor.cf(); |
453 HttpResponse.BodyHandler<T> pushHandler = acceptor.bodyHandler(); |
452 HttpResponse.BodyHandler<T> pushHandler = acceptor.bodyHandler(); |
|
453 assert pushHandler != null; |
454 |
454 |
455 pushStream.requestSent(); |
455 pushStream.requestSent(); |
456 pushStream.setPushHandler(pushHandler); // TODO: could wrap the handler to throw on acceptPushPromise ? |
456 pushStream.setPushHandler(pushHandler); // TODO: could wrap the handler to throw on acceptPushPromise ? |
457 // setup housekeeping for when the push is received |
457 // setup housekeeping for when the push is received |
458 // TODO: deal with ignoring of CF anti-pattern |
458 // TODO: deal with ignoring of CF anti-pattern |
|
459 CompletableFuture<HttpResponse<T>> cf = pushStream.responseCF(); |
459 cf.whenComplete((HttpResponse<T> resp, Throwable t) -> { |
460 cf.whenComplete((HttpResponse<T> resp, Throwable t) -> { |
460 t = Utils.getCompletionCause(t); |
461 t = Utils.getCompletionCause(t); |
461 if (Log.trace()) { |
462 if (Log.trace()) { |
462 Log.logTrace("Push completed on stream {0} for {1}{2}", |
463 Log.logTrace("Push completed on stream {0} for {1}{2}", |
463 pushStream.streamid, resp, |
464 pushStream.streamid, resp, |