diff --git a/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/ReactorNettyHttpClientAttributesGetter.java b/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/ReactorNettyHttpClientAttributesGetter.java index 2aa7a163d351..50b8ebae9af3 100644 --- a/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/ReactorNettyHttpClientAttributesGetter.java +++ b/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/ReactorNettyHttpClientAttributesGetter.java @@ -5,6 +5,8 @@ package io.opentelemetry.javaagent.instrumentation.reactornetty.v1_0; +import static java.util.Collections.emptyList; + import io.netty.handler.codec.http.HttpVersion; import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesGetter; import java.net.InetSocketAddress; @@ -30,19 +32,35 @@ public String getHttpRequestMethod(HttpClientRequest request) { @Override public List getHttpRequestHeader(HttpClientRequest request, String name) { - return request.requestHeaders().getAll(name); + try { + return request.requestHeaders().getAll(name); + } catch (IllegalStateException exception) { + // response not available + return emptyList(); + } } + @Nullable @Override public Integer getHttpResponseStatusCode( HttpClientRequest request, HttpClientResponse response, @Nullable Throwable error) { - return response.status().code(); + try { + return response.status().code(); + } catch (IllegalStateException exception) { + // response not available + return null; + } } @Override public List getHttpResponseHeader( HttpClientRequest request, HttpClientResponse response, String name) { - return response.responseHeaders().getAll(name); + try { + return response.responseHeaders().getAll(name); + } catch (IllegalStateException exception) { + // response not available + return emptyList(); + } } @Nullable