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 extends Message>) 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}