From 785860b6a7841140f5653e4754e6ef483c22a39b Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Thu, 29 Nov 2018 11:22:32 -0800 Subject: [PATCH] Add null check for envelope in consumer delegate --- .../rabbitmq/amqp/TracedDelegatingConsumer.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/TracedDelegatingConsumer.java b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/TracedDelegatingConsumer.java index 7ff8bb1874..4d453fd629 100644 --- a/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/TracedDelegatingConsumer.java +++ b/dd-java-agent/instrumentation/rabbitmq-amqp-2.7/src/main/java/datadog/trace/instrumentation/rabbitmq/amqp/TracedDelegatingConsumer.java @@ -11,6 +11,7 @@ import datadog.trace.api.DDTags; import io.opentracing.Scope; import io.opentracing.Span; import io.opentracing.SpanContext; +import io.opentracing.Tracer; import io.opentracing.noop.NoopScopeManager; import io.opentracing.propagation.Format; import io.opentracing.tag.Tags; @@ -80,7 +81,7 @@ public class TracedDelegatingConsumer implements Consumer { queueName = ""; } - scope = + final Tracer.SpanBuilder spanBuilder = GlobalTracer.get() .buildSpan("amqp.command") .asChildOf(parentContext) @@ -90,11 +91,17 @@ public class TracedDelegatingConsumer implements Consumer { .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CONSUMER) .withTag(Tags.COMPONENT.getKey(), "rabbitmq-amqp") .withTag("amqp.command", "basic.deliver") - .withTag("amqp.exchange", envelope.getExchange()) - .withTag("amqp.routing_key", envelope.getRoutingKey()) .withTag("message.size", body == null ? 0 : body.length) - .withTag("span.origin.type", delegate.getClass().getName()) - .startActive(true); + .withTag("span.origin.type", delegate.getClass().getName()); + + if (envelope != null) { + spanBuilder + .withTag("amqp.exchange", envelope.getExchange()) + .withTag("amqp.routing_key", envelope.getRoutingKey()); + } + + scope = spanBuilder.startActive(true); + } finally { try {