Skip to content

Commit

Permalink
Fix ktor3 latest dep test (#12937)
Browse files Browse the repository at this point in the history
  • Loading branch information
laurit authored Dec 20, 2024
1 parent fa32671 commit de6e0ef
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,16 @@

import io.ktor.server.application.Application;
import io.ktor.server.application.ApplicationPluginKt;
import io.ktor.server.engine.EmbeddedServer;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.instrumentation.ktor.v2_0.common.AbstractKtorServerTelemetryBuilder;
import io.opentelemetry.instrumentation.ktor.v2_0.common.internal.KtorBuilderUtil;
import io.opentelemetry.instrumentation.ktor.v3_0.KtorServerTelemetryBuilderKt;
import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig;
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import net.bytebuddy.asm.Advice;
Expand All @@ -39,7 +42,18 @@ public void transform(TypeTransformer transformer) {
public static class ConstructorAdvice {

@Advice.OnMethodExit
public static void onExit(@Advice.FieldValue("_applicationInstance") Application application) {
public static void onExit(
@Advice.This EmbeddedServer<?, ?> server, @Advice.Origin MethodHandles.Lookup lookup)
throws Throwable {
MethodHandle getter;
try {
// since 3.0.3
getter = lookup.findGetter(EmbeddedServer.class, "applicationInstance", Application.class);
} catch (NoSuchFieldException exception) {
// before 3.0.3
getter = lookup.findGetter(EmbeddedServer.class, "_applicationInstance", Application.class);
}
Application application = (Application) getter.invoke(server);
ApplicationPluginKt.install(
application, KtorServerTelemetryBuilderKt.getKtorServerTelemetry(), new SetupFunction());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ private static String eraseTypes(String descriptor) {
String reference = matcher.group();
if (reference.startsWith("Ljava/")) {
// do not erase java.* references
matcher.appendReplacement(result, reference);
matcher.appendReplacement(result, Matcher.quoteReplacement(reference));
} else {
matcher.appendReplacement(result, "Ljava/lang/Object;");
}
Expand Down

0 comments on commit de6e0ef

Please sign in to comment.