From e52dbc25149d3ac68853c42fef70dabda56077c0 Mon Sep 17 00:00:00 2001 From: Sarah Chen Date: Tue, 29 Jul 2025 17:07:36 -0400 Subject: [PATCH] Override java version 25-ea to be 24 for kotlin compiler --- .../debugger/agent/CapturingTestBase.java | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/CapturingTestBase.java b/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/CapturingTestBase.java index 5cd498c5c5f..34de2f03d4b 100644 --- a/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/CapturingTestBase.java +++ b/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/CapturingTestBase.java @@ -436,11 +436,30 @@ public static Class compileAndLoad( String compilerOutputDir = "/tmp/" + CapturedSnapshotTest.class.getSimpleName() + "-kotlin"; args.setDestination(compilerOutputDir); args.setClasspath(System.getProperty("java.class.path")); - ExitCode exitCode = - compiler.execImpl( - new PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, true), - Services.EMPTY, - args); + // We are currently testing JDK 25-ea, which is not yet generally available. This is causing + // Kotlin compilation issues for "25-ea" and "25". Temporarily override java.version "25-ea" + // to be the latest generally available JDK version "24". + // TODO: Revert this change once JDK 25 is generally available and tested. + String originalJavaVersion = System.getProperty("java.version"); + boolean overrideEAJavaVersion = + originalJavaVersion != null && originalJavaVersion.contains("-ea"); + ExitCode exitCode; + try { + if (overrideEAJavaVersion) { + System.setProperty("java.version", "24"); + } + exitCode = + compiler.execImpl( + new PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, true), + Services.EMPTY, + args); + } finally { + // Restore the original java.version if it was overridden (25-ea) + if (overrideEAJavaVersion) { + System.setProperty("java.version", originalJavaVersion); + } + } + if (exitCode.getCode() != 0) { throw new RuntimeException("Kotlin compilation failed"); }