private void cancelAction(@Nullable Throwable cause) { logBuilder.endResponse(); }
private void closeAction(@Nullable Throwable cause) { if (cause != null) { delegate.close(cause); logBuilder.endResponse(cause); } else { delegate.close(); logBuilder.endResponse(); } }
private void fail(Throwable cause) { state = State.DONE; logBuilder.endRequest(cause); logBuilder.endResponse(cause); cancelSubscription(); }
private void addCallbackAndFlush(Throwable cause, State oldState, ChannelFuture future) { if (oldState != State.DONE) { future.addListener(unused -> { // Write an access log always with a cause. Respect the first specified cause. if (tryComplete()) { logBuilder().endResponse(cause); reqCtx.log().addListener(accessLogWriter::log, RequestLogAvailability.COMPLETE); } }); } ctx.flush(); }
private static void handleEarlyRequestException(ClientRequestContext ctx, HttpRequest req, Throwable cause) { req.abort(); final RequestLogBuilder logBuilder = ctx.logBuilder(); logBuilder.endRequest(cause); logBuilder.endResponse(cause); }
@Override public void run() { final ResponseTimeoutException cause = ResponseTimeoutException.get(); delegate.close(cause); logBuilder.endResponse(cause); if (request != null) { request.abort(); } }
public static <I extends Request, O extends Response, U extends Client<I, O>> O executeWithFallback( U delegate, ClientRequestContext ctx, I req, BiFunction<ClientRequestContext, Throwable, O> fallback) { requireNonNull(delegate, "delegate"); requireNonNull(ctx, "ctx"); requireNonNull(req, "req"); requireNonNull(fallback, "fallback"); try (SafeCloseable ignored = ctx.push()) { return delegate.execute(ctx, req); } catch (Throwable cause) { final O fallbackRes = fallback.apply(ctx, cause); final RequestLogBuilder logBuilder = ctx.logBuilder(); if (!ctx.log().isAvailable(RequestLogAvailability.REQUEST_START)) { // An exception is raised even before sending a request, so end the request with the exception. logBuilder.endRequest(cause); } logBuilder.endResponse(cause); return fallbackRes; } }
private boolean handleEarlyCancellation(ClientRequestContext ctx, HttpRequest req, DecodedHttpResponse res) { if (res.isOpen()) { return false; } // The response has been closed even before its request is sent. assert protocol != null; req.abort(); ctx.logBuilder().startRequest(channel, protocol); ctx.logBuilder().requestHeaders(req.headers()); req.completionFuture().handle((unused, cause) -> { if (cause == null) { ctx.logBuilder().endRequest(); } else { ctx.logBuilder().endRequest(cause); } return null; }); res.completionFuture().handle((unused, cause) -> { if (cause == null) { ctx.logBuilder().endResponse(); } else { ctx.logBuilder().endResponse(cause); } return null; }); return true; }
logBuilder().endResponse(); reqCtx.log().addListener(accessLogWriter::log, RequestLogAvailability.COMPLETE); logBuilder().endResponse(f.cause()); subscription.cancel(); reqCtx.log().addListener(accessLogWriter::log, RequestLogAvailability.COMPLETE);
logBuilder.endResponse(); } else { logBuilder.endResponse(firstNonNull(cause, f.cause()));
logBuilder.endResponse(cause);
ctx.logBuilder().responseFirstBytesTransferred(); ctx.logBuilder().responseContent(rpcRes, res); ctx.logBuilder().endResponse();
logBuilder.responseFirstBytesTransferred(); logBuilder.responseContent(rpcRes, res); logBuilder.endResponse();
final RequestLogBuilder log = ctx.logBuilder(); log.endRequest(); log.endResponse();
log.responseHeaders(HttpHeaders.of(200).set(HttpHeaderNames.DATE, "some-date")); log.responseContent(RPC_RES, THRIFT_REPLY); log.endResponse();
log.responseHeaders(HttpHeaders.of(200).set(HttpHeaderNames.DATE, "some-date")); log.responseContent(RPC_RES, THRIFT_REPLY); log.endResponse();