diff --git a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts index 22f6bf59a98a..f80a8f5ecbc3 100644 --- a/conventions/src/main/kotlin/otel.java-conventions.gradle.kts +++ b/conventions/src/main/kotlin/otel.java-conventions.gradle.kts @@ -339,6 +339,14 @@ val resourceClassesCsv = resourceNames.joinToString(",") { "io.opentelemetry.sdk tasks.withType().configureEach { useJUnitPlatform() + // work around jvm crash on openJ9 8 after updating armeria to 1.33.1 + val testJavaVersion = gradle.startParameter.projectProperties["testJavaVersion"]?.let(JavaVersion::toVersion) + val useJ9 = gradle.startParameter.projectProperties["testJavaVM"]?.run { this == "openj9" } + ?: false + if (useJ9 && testJavaVersion != null && testJavaVersion.isJava8) { + jvmArgs("-Xjit:exclude={io/opentelemetry/testing/internal/io/netty/buffer/HeapByteBufUtil.*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/UnpooledHeapByteBuf.*},exclude={io/opentelemetry/testing/internal/io/netty/buffer/AbstractByteBuf.*}") + } + // There's no real harm in setting this for all tests even if any happen to not be using context // propagation. jvmArgs("-Dio.opentelemetry.context.enableStrictContext=${rootProject.findProperty("enableStrictContext") ?: true}")