HttpTagAndSpanNamingStrategy { public final void handleRequestTagging( @NotNull Span span, @NotNull REQ request, @NotNull HttpTagAndSpanNamingAdapter<REQ, ?> adapter ) { if (span == null || request == null || adapter == null) { return; } try { doHandleRequestTagging(span, request, adapter); } catch (Throwable t) { logger.error( "An unexpected error occurred while handling request tagging. The error will be swallowed to avoid " + "doing any damage, but your span may be missing some expected tags. This error should be fixed.", t ); } }  final @Nullable String getInitialSpanName(
        @NotNull REQ request,
        @NotNull HttpTagAndSpanNamingAdapter<REQ, ?> adapter
    ); final void handleRequestTagging(
        @NotNull Span span,
        @NotNull REQ request,
        @NotNull HttpTagAndSpanNamingAdapter<REQ, ?> adapter
    ); final void handleResponseTaggingAndFinalSpanName(
        @NotNull Span span,
        @Nullable REQ request,
        @Nullable RES response,
        @Nullable Throwable error,
        @NotNull HttpTagAndSpanNamingAdapter<REQ, RES> adapter
    );  }
@DataProvider(value = { "SPAN_IS_NULL", "REQUEST_OBJ_IS_NULL", "ADAPTER_IS_NULL", }, splitBy = "\\|") @Test @SuppressWarnings("ConstantConditions") public void handleRequestTagging_does_nothing_in_null_arg_corner_cases(NullArgCornerCaseScenario scenario) { Span spanMock = scenario.spanMock; Object requestObjectMock = scenario.requestObjMock; HttpTagAndSpanNamingAdapter<Object, Object> adapterMock = scenario.adapterMock; implSpy.handleRequestTagging(spanMock, requestObjectMock, adapterMock); verifyZeroInteractions(implSpy); if (spanMock != null) { verifyZeroInteractions(spanMock); } if (requestObjectMock != null) { verifyZeroInteractions(requestObjectMock); } if (adapterMock != null) { verifyZeroInteractions(adapterMock); } }