private void handleAggregatedResponse(RetryConfig<HttpResponse> retryConfig, ClientRequestContext ctx,
                                          HttpRequestDuplicator rootReqDuplicator,
                                          HttpRequest originalReq, HttpResponse returnedRes,
                                          CompletableFuture<HttpResponse> future,
                                          ClientRequestContext derivedCtx,
                                          AggregatedHttpResponse aggregatedRes) {
        if (retryConfig.needsContentInRule()) {
            final RetryRuleWithContent<HttpResponse> ruleWithContent = retryConfig.retryRuleWithContent();
            assert ruleWithContent != null;
            try {
                ruleWithContent.shouldRetry(derivedCtx, aggregatedRes.toHttpResponse(), null)
                               .handle((decision, cause) -> {
                                   warnIfExceptionIsRaised(ruleWithContent, cause);
                                   handleRetryDecision(
                                           decision, ctx, derivedCtx, rootReqDuplicator, originalReq,
                                           returnedRes, future, aggregatedRes.toHttpResponse());
                                   return null;
                               });
            } catch (Throwable cause) {
                handleException(ctx, rootReqDuplicator, future, cause, false);
            }
            return;
        }
        handleResponseWithoutContent(retryConfig, ctx, rootReqDuplicator, originalReq, returnedRes,
                                     future, derivedCtx, aggregatedRes.toHttpResponse(), null);
    }
Creates a new instance that decorates the specified {@link HttpClient}.
core/src/main/java/com/linecorp/armeria/client/retry/RetryingClient.java