static Callback create(@Nullable Callback delegate, Span span, CurrentTraceContext current) {
    if (delegate == null) return new FinishSpan(span);
    return new DelegateAndFinishSpan(delegate, span, current);
  }
@Test void on_completion_should_forward_then_tag_if_exception() {
    Span span = tracing.tracer().nextSpan().start();

    Callback delegate = mock(Callback.class);
    Callback tracingCallback = TracingCallback.create(delegate, span, currentTraceContext);
    RecordMetadata md = createRecordMetadata();
    tracingCallback.onCompletion(md, error);

    verify(delegate).onCompletion(md, error);

    assertThat(spans.get(0).finishTimestamp()).isNotZero();
    assertThat(spans.get(0).error()).isEqualTo(error);
  }