diff --git a/opentracing-redis-redisson/src/main/java/io/opentracing/contrib/redis/redisson/TracingRedissonHelper.java b/opentracing-redis-redisson/src/main/java/io/opentracing/contrib/redis/redisson/TracingRedissonHelper.java index 78b0115..7a1a5b0 100644 --- a/opentracing-redis-redisson/src/main/java/io/opentracing/contrib/redis/redisson/TracingRedissonHelper.java +++ b/opentracing-redis-redisson/src/main/java/io/opentracing/contrib/redis/redisson/TracingRedissonHelper.java @@ -32,8 +32,7 @@ Span buildSpan(String operationName, RObject rObject) { } - private RFuture continueScopeSpan(RFuture redisFuture) { - Span span = tracer.activeSpan(); + private RFuture continueScopeSpan(RFuture redisFuture, Span span) { CompletableRFuture customRedisFuture = new CompletableRFuture<>(redisFuture); redisFuture.whenComplete((v, throwable) -> { try (Scope ignored = tracer.scopeManager().activate(span)) { @@ -68,6 +67,6 @@ RFuture prepareRFuture(Span span, Supplier> futureSupplier) { throw e; } - return continueScopeSpan(setCompleteAction(future, span)); + return continueScopeSpan(setCompleteAction(future, span), span); } } diff --git a/opentracing-redis-redisson/src/test/java/io/opentracing/contrib/redis/redisson/TracingRedissonTest.java b/opentracing-redis-redisson/src/test/java/io/opentracing/contrib/redis/redisson/TracingRedissonTest.java index 14b10b8..95f322e 100644 --- a/opentracing-redis-redisson/src/test/java/io/opentracing/contrib/redis/redisson/TracingRedissonTest.java +++ b/opentracing-redis-redisson/src/test/java/io/opentracing/contrib/redis/redisson/TracingRedissonTest.java @@ -18,7 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import io.opentracing.Scope; @@ -31,6 +31,8 @@ import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; + +import org.hamcrest.Matchers; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; @@ -182,7 +184,10 @@ public void async_continue_span() throws Exception { System.out.println( "active span: " + tracer.activeSpan() + " in thread: " + Thread.currentThread() .getName()); - assertSame(activeSpan, tracer.activeSpan()); + final MockSpan actualSpan = (MockSpan)tracer.activeSpan(); + assertEquals("containsKeyAsync", actualSpan.operationName()); + assertEquals(Long.parseLong(activeSpan.context().toSpanId()), actualSpan.parentId()); + return s; }).get(15, TimeUnit.SECONDS)); @@ -218,8 +223,7 @@ public void test_config_span_name() throws Exception { List spans = tracer.finishedSpans(); assertEquals(2, spans.size()); - MockSpan redisSpan = spans.get(0); - assertEquals("Redis.getAsync", redisSpan.operationName()); + assertThat(spans, Matchers.hasItem(Matchers.hasToString(Matchers.containsString("Redis.getAsync")))); assertNull(tracer.activeSpan()); customClient.shutdown();