docs: @Override
      public void filter(ClientRequestContext clientRequestContext,
                         ClientResponseContext clientResponseContext) throws IOException {
          String methodName = "filter(incoming)";
  
          Boolean skip = (Boolean) clientRequestContext.getProperty(CLIENT_SPAN_SKIPPED_ID);
          if ((skip != null) && skip) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, methodName, "skipped");
              }
              clientRequestContext.removeProperty(CLIENT_SPAN_SKIPPED_ID);
              return;
          }
  
          Continuation continuation = (Continuation) clientRequestContext.getProperty(CLIENT_CONTINUATION_PROP_ID);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, methodName, continuation);
          }
  
          if (continuation == null) {
              // This may occur if there's no Tracer (see other method); otherwise, there's
              // probably some bug sending the right Continuation (e.g. threading?).
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, methodName + " no continuation span");
              }
              return;
          }
  
          clientRequestContext.removeProperty(CLIENT_CONTINUATION_PROP_ID);
  
          try (AutoFinishScope scope = continuation.activate()) {
              Integer httpStatus = Integer.valueOf(clientResponseContext.getStatus());
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, methodName + " httpStatus", httpStatus);
              }
  
              scope.span().setTag(Tags.HTTP_STATUS.getKey(), httpStatus);
              if (clientResponseContext.getStatus() >= 400) {
                  scope.span().setTag(Tags.ERROR.getKey(), true);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, methodName + " error", clientResponseContext.getStatus());
                  }
              }
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, methodName + " finish span", scope.span());
              }
          }
      }