@Nullable public Span currentSpan() {
    TraceContext context = currentTraceContext.get();
    if (context == null) return null;
    // Returns a lazy span to reduce overhead when tracer.currentSpan() is invoked just to see if
    // one exists, or when the result is never used.
    return new LazySpan(this, context);
  }
@Test void currentSpan_decoratesExternalContext() {
    try (Scope scope = currentTraceContext.newScope(context)) {
      assertThat(tracer.currentSpan().context())
        .isNotSameAs(context)
        .extracting(TraceContext::localRootId)
        .isEqualTo(context.spanId());
    }
  }