diff --git a/instrumentation/hibernate/hibernate-reactive-1.0/javaagent/build.gradle.kts b/instrumentation/hibernate/hibernate-reactive-1.0/javaagent/build.gradle.kts index 624313d40e..25525d1484 100644 --- a/instrumentation/hibernate/hibernate-reactive-1.0/javaagent/build.gradle.kts +++ b/instrumentation/hibernate/hibernate-reactive-1.0/javaagent/build.gradle.kts @@ -38,6 +38,7 @@ testing { implementation("org.hibernate.reactive:hibernate-reactive-core:1.0.0.Final") implementation("io.vertx:vertx-pg-client:4.1.5") } + compileOnly("io.vertx:vertx-codegen:4.1.5") } } diff --git a/instrumentation/hibernate/hibernate-reactive-1.0/javaagent/src/hibernateReactive1Test/java/io/opentelemetry/javaagent/instrumentation/hibernate/reactive/v1_0/HibernateReactiveTest.java b/instrumentation/hibernate/hibernate-reactive-1.0/javaagent/src/hibernateReactive1Test/java/io/opentelemetry/javaagent/instrumentation/hibernate/reactive/v1_0/HibernateReactiveTest.java index 85e2e0b2ce..62ba3397e9 100644 --- a/instrumentation/hibernate/hibernate-reactive-1.0/javaagent/src/hibernateReactive1Test/java/io/opentelemetry/javaagent/instrumentation/hibernate/reactive/v1_0/HibernateReactiveTest.java +++ b/instrumentation/hibernate/hibernate-reactive-1.0/javaagent/src/hibernateReactive1Test/java/io/opentelemetry/javaagent/instrumentation/hibernate/reactive/v1_0/HibernateReactiveTest.java @@ -18,7 +18,9 @@ import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension; +import io.vertx.core.Vertx; import java.time.Duration; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; @@ -117,23 +119,28 @@ class HibernateReactiveTest { @Test void testStage() throws Exception { - testing - .runWithSpan( - "parent", - () -> - stageSessionFactory - .withSession( - session -> { - if (!Span.current().getSpanContext().isValid()) { - throw new IllegalStateException("missing parent span"); - } + CountDownLatch latch = new CountDownLatch(1); + testing.runWithSpan( + "parent", + () -> + Vertx.vertx() + .getOrCreateContext() + .runOnContext( + event -> + stageSessionFactory + .withSession( + session -> { + if (!Span.current().getSpanContext().isValid()) { + throw new IllegalStateException("missing parent span"); + } - return session - .find(Value.class, 1L) - .thenAccept(value -> testing.runWithSpan("callback", () -> {})); - }) - .toCompletableFuture()) - .get(30, TimeUnit.SECONDS); + return session + .find(Value.class, 1L) + .thenAccept( + value -> testing.runWithSpan("callback", () -> {})); + }) + .thenAccept(unused -> latch.countDown()))); + latch.await(30, TimeUnit.SECONDS); assertTrace(); }