From d063e966eb08a3f3ef7e0683b3a8b100973f4170 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 23 Sep 2025 15:20:23 -0700 Subject: [PATCH 1/2] Better fix for security manager test on Java 24 --- .../trace/internal/JcToolsSecurityManagerTest.java | 3 ++- .../SunMiscProhibitedSecurityManagerTest.java | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/JcToolsSecurityManagerTest.java b/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/JcToolsSecurityManagerTest.java index eb2bd9199e3..7e1336906f1 100644 --- a/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/JcToolsSecurityManagerTest.java +++ b/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/JcToolsSecurityManagerTest.java @@ -19,7 +19,8 @@ public class JcToolsSecurityManagerTest { @Test - @EnabledOnJre({JRE.JAVA_8, JRE.JAVA_11, JRE.JAVA_17}) + // Security manager removed in Java 24 + @EnabledOnJre({JRE.JAVA_8, JRE.JAVA_11, JRE.JAVA_17, JRE.JAVA_21}) @SuppressLogger(JcTools.class) void newFixedSizeQueue_SunMiscProhibited() { assertThat(System.getSecurityManager()).isNull(); diff --git a/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/SunMiscProhibitedSecurityManagerTest.java b/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/SunMiscProhibitedSecurityManagerTest.java index e49aa0ca8a8..205f2385fc1 100644 --- a/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/SunMiscProhibitedSecurityManagerTest.java +++ b/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/SunMiscProhibitedSecurityManagerTest.java @@ -8,15 +8,22 @@ import static org.assertj.core.api.Assertions.assertThatNoException; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import java.security.AccessControlException; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledOnJre; +import org.junit.jupiter.api.condition.JRE; +// Security manager removed in Java 24 +@EnabledOnJre({JRE.JAVA_8, JRE.JAVA_11, JRE.JAVA_17, JRE.JAVA_21}) class SunMiscProhibitedSecurityManagerTest { @Test public void checkPackageAccess_ProhibitsSunMisc() { SunMiscProhibitedSecurityManager sm = new SunMiscProhibitedSecurityManager(); assertThatThrownBy(() -> sm.checkPackageAccess("sun.misc")) - .isInstanceOf(SecurityException.class); + .isInstanceOf(AccessControlException.class) + .hasMessage( + "access denied (\"java.lang.RuntimePermission\" \"accessClassInPackage.sun.misc\")"); } @Test @@ -25,7 +32,9 @@ public void checkPackageAccess_ProhibitsSunMiscRuntimePermission() { assertThatThrownBy( () -> sm.checkPermission(new RuntimePermission("accessClassInPackage.sun.misc"))) - .isInstanceOf(SecurityException.class); + .isInstanceOf(AccessControlException.class) + .hasMessage( + "access denied (\"java.lang.RuntimePermission\" \"accessClassInPackage.sun.misc\")"); } @Test From 40cde5498ed7605142090216c167fb4262606194 Mon Sep 17 00:00:00 2001 From: Trask Stalnaker Date: Tue, 23 Sep 2025 18:18:56 -0700 Subject: [PATCH 2/2] Fix --- .../sdk/trace/internal/JcToolsSecurityManagerTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/JcToolsSecurityManagerTest.java b/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/JcToolsSecurityManagerTest.java index 7e1336906f1..351e952f827 100644 --- a/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/JcToolsSecurityManagerTest.java +++ b/sdk/trace-shaded-deps/src/test/java/io/opentelemetry/sdk/trace/internal/JcToolsSecurityManagerTest.java @@ -19,8 +19,8 @@ public class JcToolsSecurityManagerTest { @Test - // Security manager removed in Java 24 - @EnabledOnJre({JRE.JAVA_8, JRE.JAVA_11, JRE.JAVA_17, JRE.JAVA_21}) + // System.setSecurityManager throws UnsupportedOperationException in Java 18+ + @EnabledOnJre({JRE.JAVA_8, JRE.JAVA_11, JRE.JAVA_17}) @SuppressLogger(JcTools.class) void newFixedSizeQueue_SunMiscProhibited() { assertThat(System.getSecurityManager()).isNull();