diff --git a/instrumentation/grizzly-2.0/javaagent/build.gradle.kts b/instrumentation/grizzly-2.0/javaagent/build.gradle.kts index 666a78840c..69349cbb4f 100644 --- a/instrumentation/grizzly-2.0/javaagent/build.gradle.kts +++ b/instrumentation/grizzly-2.0/javaagent/build.gradle.kts @@ -26,11 +26,5 @@ tasks.withType().configureEach { jvmArgs("-Dotel.instrumentation.grizzly.enabled=true") } -tasks.withType().configureEach { - // https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/2640 - jvmArgs("-Dio.opentelemetry.javaagent.shaded.io.opentelemetry.context.enableStrictContext=false") -} - - // Requires old Guava. Can't use enforcedPlatform since predates BOM configurations.testRuntimeClasspath.resolutionStrategy.force("com.google.guava:guava:19.0") diff --git a/instrumentation/grizzly-2.0/javaagent/src/test/groovy/GrizzlyTest.groovy b/instrumentation/grizzly-2.0/javaagent/src/test/groovy/GrizzlyTest.groovy index 0c144e428a..812c6b38ea 100644 --- a/instrumentation/grizzly-2.0/javaagent/src/test/groovy/GrizzlyTest.groovy +++ b/instrumentation/grizzly-2.0/javaagent/src/test/groovy/GrizzlyTest.groovy @@ -8,9 +8,11 @@ import static io.opentelemetry.instrumentation.test.base.HttpServerTest.ServerEn import static io.opentelemetry.instrumentation.test.base.HttpServerTest.ServerEndpoint.QUERY_PARAM import static io.opentelemetry.instrumentation.test.base.HttpServerTest.ServerEndpoint.REDIRECT import static io.opentelemetry.instrumentation.test.base.HttpServerTest.ServerEndpoint.SUCCESS +import static org.awaitility.Awaitility.await import io.opentelemetry.instrumentation.test.AgentTestTrait import io.opentelemetry.instrumentation.test.base.HttpServerTest +import java.util.concurrent.TimeUnit import javax.ws.rs.GET import javax.ws.rs.NotFoundException import javax.ws.rs.Path @@ -45,6 +47,23 @@ class GrizzlyTest extends HttpServerTest implements AgentTestTrait { server.stop() } + def cleanup() { + // wait for async request threads to complete + await() + .atMost(15, TimeUnit.SECONDS) + .until({ !isRequestRunning() }) + } + + static boolean isRequestRunning() { + def result = Thread.getAllStackTraces().values().find {stackTrace -> + def element = stackTrace.find { + return ((it.className == "org.glassfish.grizzly.http.server.HttpHandler\$1" && it.methodName == "run")) + } + element != null + } + return result != null + } + static class SimpleExceptionMapper implements ExceptionMapper { @Override