From 341da5b36c90498645cae738ab34814892110f95 Mon Sep 17 00:00:00 2001 From: Yashwant Date: Tue, 25 Feb 2025 18:17:09 +0530 Subject: [PATCH 1/2] fix servlet3.0 headeres capture --- .../v3_0/nowrapping/Servlet30AndFilterInstrumentation.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java b/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java index 526dc059..b6914448 100644 --- a/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java +++ b/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java @@ -183,6 +183,9 @@ public static void exit( if (!request.isAsyncStarted()) { if (instrumentationConfig.httpHeaders().response()) { + if (!httpResponse.isCommitted()) { + httpResponse.flushBuffer(); + } for (String headerName : httpResponse.getHeaderNames()) { String headerValue = httpResponse.getHeader(headerName); currentSpan.setAttribute( @@ -212,6 +215,7 @@ public static void exit( urlEncodedMapContextStore); } } + } catch (IOException e) { } finally { Throwable tmp = throwable; while (tmp != null) { // loop in case our exception is nested (eg. springframework) From 6e26539b19355ffde6dd863e577bdd0cadaf0954 Mon Sep 17 00:00:00 2001 From: Yashwant Date: Wed, 26 Feb 2025 19:00:55 +0530 Subject: [PATCH 2/2] fix condition --- .../v3_0/nowrapping/Servlet30AndFilterInstrumentation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java b/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java index b6914448..6d5b6b25 100644 --- a/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java +++ b/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java @@ -183,7 +183,7 @@ public static void exit( if (!request.isAsyncStarted()) { if (instrumentationConfig.httpHeaders().response()) { - if (!httpResponse.isCommitted()) { + if (throwable == null && !httpResponse.isCommitted()) { httpResponse.flushBuffer(); } for (String headerName : httpResponse.getHeaderNames()) {