From 55f2df3cd977f3b6d04860804c3a0535379d235d Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Mon, 1 Nov 2021 17:59:08 +0200 Subject: [PATCH 1/4] Fix sun.misc.Unsafe generation on jdk17 --- .../javaagent/tooling/SunMiscUnsafeGenerator.java | 3 ++- .../opentelemetry/smoketest/JettyJpmsSmokeTest.groovy | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/javaagent-tooling/javaagent-tooling-java9/src/main/java/io/opentelemetry/javaagent/tooling/SunMiscUnsafeGenerator.java b/javaagent-tooling/javaagent-tooling-java9/src/main/java/io/opentelemetry/javaagent/tooling/SunMiscUnsafeGenerator.java index 4f7088b5009d..20a1bdb184a3 100644 --- a/javaagent-tooling/javaagent-tooling-java9/src/main/java/io/opentelemetry/javaagent/tooling/SunMiscUnsafeGenerator.java +++ b/javaagent-tooling/javaagent-tooling-java9/src/main/java/io/opentelemetry/javaagent/tooling/SunMiscUnsafeGenerator.java @@ -195,8 +195,9 @@ private void addMethods() { addMethod("arrayIndexScale", int.class, Class.class); addMethod("addressSize", int.class); addMethod("pageSize", int.class); - addMethod("defineAnonymousClass", Class.class, Class.class, byte[].class, Object[].class); addMethod("getLoadAverage", int.class, double[].class, int.class); + // defineAnonymousClass was removed in jdk17 + addOptionalMethod("defineAnonymousClass", Class.class, Class.class, byte[].class, Object[].class); // this method is missing from internal unsafe in some jdk11 versions addOptionalMethod("invokeCleaner", void.class, ByteBuffer.class); } diff --git a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy index bc362844cd3d..1a18b2bbee04 100644 --- a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy +++ b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy @@ -7,7 +7,7 @@ package io.opentelemetry.smoketest // jetty test with java module system @AppServer(version = "11.0.7", jdk = "11") -class JettyJpmsSmokeTest extends AppServerTest { +abstract class JettyJpmsSmokeTest extends AppServerTest { @Override protected String getTargetImagePrefix() { @@ -17,6 +17,13 @@ class JettyJpmsSmokeTest extends AppServerTest { @Override protected String[] getCommand() { // --jpms flags enables using java module system - return ["java", "-jar", "/server/start.jar", "--jpms"] + return ["java", "-jar", "/server/start.jar", "--jpms", "-Dcom.sun.management.jmxremote"] } } + +@AppServer(version = "11.0.7", jdk = "11") +class Jetty11JpmsJdk11 extends JettyJpmsSmokeTest { +} +@AppServer(version = "11.0.7", jdk = "17") +class Jetty11JpmsJdk17 extends JettyJpmsSmokeTest { +} \ No newline at end of file From d0f3bc298238cdb70919192bf5a213847af277a6 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Mon, 1 Nov 2021 18:00:08 +0200 Subject: [PATCH 2/4] remove jmxremote argument for now --- .../groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy index 1a18b2bbee04..623db0008c99 100644 --- a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy +++ b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy @@ -17,7 +17,7 @@ abstract class JettyJpmsSmokeTest extends AppServerTest { @Override protected String[] getCommand() { // --jpms flags enables using java module system - return ["java", "-jar", "/server/start.jar", "--jpms", "-Dcom.sun.management.jmxremote"] + return ["java", "-jar", "/server/start.jar", "--jpms"] } } From 7be21a72241d71fa4da215df9e58f7aeadde208e Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Mon, 1 Nov 2021 23:43:50 +0200 Subject: [PATCH 3/4] spotless --- .../javaagent/tooling/SunMiscUnsafeGenerator.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/javaagent-tooling/javaagent-tooling-java9/src/main/java/io/opentelemetry/javaagent/tooling/SunMiscUnsafeGenerator.java b/javaagent-tooling/javaagent-tooling-java9/src/main/java/io/opentelemetry/javaagent/tooling/SunMiscUnsafeGenerator.java index 20a1bdb184a3..313e5fb83702 100644 --- a/javaagent-tooling/javaagent-tooling-java9/src/main/java/io/opentelemetry/javaagent/tooling/SunMiscUnsafeGenerator.java +++ b/javaagent-tooling/javaagent-tooling-java9/src/main/java/io/opentelemetry/javaagent/tooling/SunMiscUnsafeGenerator.java @@ -197,7 +197,8 @@ private void addMethods() { addMethod("pageSize", int.class); addMethod("getLoadAverage", int.class, double[].class, int.class); // defineAnonymousClass was removed in jdk17 - addOptionalMethod("defineAnonymousClass", Class.class, Class.class, byte[].class, Object[].class); + addOptionalMethod( + "defineAnonymousClass", Class.class, Class.class, byte[].class, Object[].class); // this method is missing from internal unsafe in some jdk11 versions addOptionalMethod("invokeCleaner", void.class, ByteBuffer.class); } From d39bfb2a2d5a9a59f9045af4f23978d10ceb77c1 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Tue, 2 Nov 2021 07:36:15 +0200 Subject: [PATCH 4/4] remove unneeded annotation --- .../groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy | 1 - 1 file changed, 1 deletion(-) diff --git a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy index 623db0008c99..ce9024322dc8 100644 --- a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy +++ b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettyJpmsSmokeTest.groovy @@ -6,7 +6,6 @@ package io.opentelemetry.smoketest // jetty test with java module system -@AppServer(version = "11.0.7", jdk = "11") abstract class JettyJpmsSmokeTest extends AppServerTest { @Override