diff --git a/opentracing-spring-rabbitmq-it/pom.xml b/opentracing-spring-rabbitmq-it/pom.xml index f7da5c7..ab920d8 100644 --- a/opentracing-spring-rabbitmq-it/pom.xml +++ b/opentracing-spring-rabbitmq-it/pom.xml @@ -19,7 +19,7 @@ io.opentracing.contrib opentracing-spring-rabbitmq-parent - 3.0.2-SNAPSHOT + 3.0.2-BATCH opentracing-spring-rabbitmq-it diff --git a/opentracing-spring-rabbitmq-starter/pom.xml b/opentracing-spring-rabbitmq-starter/pom.xml index 3369883..ef9d127 100644 --- a/opentracing-spring-rabbitmq-starter/pom.xml +++ b/opentracing-spring-rabbitmq-starter/pom.xml @@ -19,7 +19,7 @@ io.opentracing.contrib opentracing-spring-rabbitmq-parent - 3.0.2-SNAPSHOT + 3.0.2-BATCH opentracing-spring-rabbitmq-starter diff --git a/opentracing-spring-rabbitmq/pom.xml b/opentracing-spring-rabbitmq/pom.xml index 877680c..418faad 100644 --- a/opentracing-spring-rabbitmq/pom.xml +++ b/opentracing-spring-rabbitmq/pom.xml @@ -19,7 +19,7 @@ io.opentracing.contrib opentracing-spring-rabbitmq-parent - 3.0.2-SNAPSHOT + 3.0.2-BATCH opentracing-spring-rabbitmq diff --git a/opentracing-spring-rabbitmq/src/main/java/io/opentracing/contrib/spring/rabbitmq/RabbitMqReceiveTracingInterceptor.java b/opentracing-spring-rabbitmq/src/main/java/io/opentracing/contrib/spring/rabbitmq/RabbitMqReceiveTracingInterceptor.java index a75ecdb..72466ba 100644 --- a/opentracing-spring-rabbitmq/src/main/java/io/opentracing/contrib/spring/rabbitmq/RabbitMqReceiveTracingInterceptor.java +++ b/opentracing-spring-rabbitmq/src/main/java/io/opentracing/contrib/spring/rabbitmq/RabbitMqReceiveTracingInterceptor.java @@ -26,6 +26,7 @@ import org.springframework.aop.AfterAdvice; import org.springframework.aop.BeforeAdvice; +import java.util.List; /** * @author Gilles Robert */ @@ -35,9 +36,22 @@ public class RabbitMqReceiveTracingInterceptor implements MethodInterceptor, Aft private final Tracer tracer; private final RabbitMqSpanDecorator spanDecorator; + + /** + * OpenTracing original class doesnt handle batch messaging + * code is from https://github.com/openzipkin/brave/blob/master/instrumentation/spring-rabbit/src/main/java/brave/spring/rabbit/TracingRabbitListenerAdvice.java + */ + @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { - Message message = (Message) methodInvocation.getArguments()[1]; + + Message message = null; + if (methodInvocation.getArguments()[1] instanceof List) { + message = ((List) methodInvocation.getArguments()[1]).get(0); + } else { + message = (Message) methodInvocation.getArguments()[1]; + } + MessageProperties messageProperties = message.getMessageProperties(); Optional child = RabbitMqTracingUtils.buildReceiveSpan(messageProperties, tracer); diff --git a/pom.xml b/pom.xml index 32478be..eb556b2 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ io.opentracing.contrib opentracing-spring-rabbitmq-parent - 3.0.2-SNAPSHOT + 3.0.2-BATCH pom ${project.groupId}:${project.artifactId}