From e683fd9bee83e87e9cc4aa6fb538a1da26f0dc48 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Wed, 21 Dec 2022 10:26:44 +0200 Subject: [PATCH] Preserve original exception in jetty http client wrappers (#7455) Same issue as in https://github.com/open-telemetry/opentelemetry-java-instrumentation/pull/7452 --- .../jetty/httpclient/v9_2/internal/JettyClientWrapUtil.java | 3 +++ .../v9_2/internal/JettyHttpClient9TracingInterceptor.java | 3 +++ 2 files changed, 6 insertions(+) diff --git a/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientWrapUtil.java b/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientWrapUtil.java index 9c5dd09f09..b6885bd3ed 100644 --- a/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientWrapUtil.java +++ b/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyClientWrapUtil.java @@ -9,6 +9,7 @@ import static java.util.stream.Collectors.toList; import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.List; @@ -71,6 +72,8 @@ public final class JettyClientWrapUtil { (proxy, method, args) -> { try (Scope ignored = context.makeCurrent()) { return method.invoke(listener, args); + } catch (InvocationTargetException exception) { + throw exception.getCause(); } }); } diff --git a/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyHttpClient9TracingInterceptor.java b/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyHttpClient9TracingInterceptor.java index 4749877afd..ad0b164691 100644 --- a/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyHttpClient9TracingInterceptor.java +++ b/instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/main/java/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/internal/JettyHttpClient9TracingInterceptor.java @@ -10,6 +10,7 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.List; @@ -118,6 +119,8 @@ public class JettyHttpClient9TracingInterceptor (proxy, method, args) -> { try (Scope ignored = context.makeCurrent()) { return method.invoke(listener, args); + } catch (InvocationTargetException exception) { + throw exception.getCause(); } });