class JmsTracing {

  public Span nextSpan(Message message) {
    TraceContextOrSamplingFlags extracted =
      extractAndClearTraceIdProperties(processorExtractor, message, message);
    Span result = tracer.nextSpan(extracted); // Processor spans use the normal sampler.

    // When an upstream context was not present, lookup keys are unlikely added
    if (extracted.context() == null && !result.isNoop()) {
      // simplify code by re-using an existing MessagingRequest impl
      tagQueueOrTopic(new MessageConsumerRequest(message, destination(message)), result);
    }
    return result;
  }

    JmsTracing(Builder builder);

}