From 49659138ff1fb19a9a4df88c4d62439cb2fce15b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 08:06:13 +0000 Subject: [PATCH 1/2] Initial plan From 7b6d08e600385ba31bde75a8a6746803ea041d30 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 08:28:22 +0000 Subject: [PATCH 2/2] Fix Java 17 ClassCircularityError in RuntimeAttach smoke tests Pre-load java.lang.invoke.MethodHandle before runtime attach to avoid ClassCircularityError that occurs with OpenTelemetry 2.22.0-alpha on Java 17 HotSpot JVM. See https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/3396 Co-authored-by: xiang17 <9310587+xiang17@users.noreply.github.com> --- .../applicationinsights/smoketestapp/SpringBootApp.java | 7 +++++++ .../applicationinsights/smoketestapp/SpringBootApp.java | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/smoke-tests/apps/RuntimeAttach/src/main/java/com/microsoft/applicationinsights/smoketestapp/SpringBootApp.java b/smoke-tests/apps/RuntimeAttach/src/main/java/com/microsoft/applicationinsights/smoketestapp/SpringBootApp.java index 4e55aefe9be..6bd7b4cfe7d 100644 --- a/smoke-tests/apps/RuntimeAttach/src/main/java/com/microsoft/applicationinsights/smoketestapp/SpringBootApp.java +++ b/smoke-tests/apps/RuntimeAttach/src/main/java/com/microsoft/applicationinsights/smoketestapp/SpringBootApp.java @@ -13,6 +13,13 @@ public class SpringBootApp extends SpringBootServletInitializer { public static void main(String[] args) { + // Pre-load MethodHandle to avoid ClassCircularityError on Java 17 with runtime attach + // See https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/3396 + try { + Class.forName("java.lang.invoke.MethodHandle"); + } catch (ClassNotFoundException e) { + // ignore + } ApplicationInsights.attach(); SpringApplication.run(SpringBootApp.class, args); } diff --git a/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/main/java/com/microsoft/applicationinsights/smoketestapp/SpringBootApp.java b/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/main/java/com/microsoft/applicationinsights/smoketestapp/SpringBootApp.java index 4d1172cfc62..1aa3a17bb6b 100644 --- a/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/main/java/com/microsoft/applicationinsights/smoketestapp/SpringBootApp.java +++ b/smoke-tests/apps/RuntimeAttachWithDelayedConnectionString/src/main/java/com/microsoft/applicationinsights/smoketestapp/SpringBootApp.java @@ -16,6 +16,13 @@ public class SpringBootApp extends SpringBootServletInitializer { private static final String FAKE_INGESTION_ENDPOINT = "http://host.testcontainers.internal:6060/"; public static void main(String[] args) { + // Pre-load MethodHandle to avoid ClassCircularityError on Java 17 with runtime attach + // See https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/3396 + try { + Class.forName("java.lang.invoke.MethodHandle"); + } catch (ClassNotFoundException e) { + // ignore + } ApplicationInsights.attach(); ConnectionString.configure( "InstrumentationKey=00000000-0000-0000-0000-0FEEDDADBEEF;IngestionEndpoint="