Skip to content

Commit 1b9eecc

Browse files
otelbot[bot]trask
andauthored
Code review sweep (run 25078700795) (#18389)
Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
1 parent 5f0101d commit 1b9eecc

10 files changed

Lines changed: 38 additions & 23 deletions

File tree

instrumentation/servlet/servlet-3.0/javaagent-unit-tests/src/test/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/snippet/SnippetPrintWriterTest.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,19 +150,15 @@ private static InMemoryHttpServletResponse createInMemoryHttpServletResponse(Str
150150

151151
private static class InMemoryHttpServletResponse extends HttpServletResponseWrapper {
152152

153-
private PrintWriter printWriter;
154-
private StringWriter stringWriter;
153+
private final StringWriter stringWriter = new StringWriter();
154+
private final PrintWriter printWriter = new PrintWriter(stringWriter);
155155

156156
InMemoryHttpServletResponse(HttpServletResponse delegate) {
157157
super(delegate);
158158
}
159159

160160
@Override
161161
public PrintWriter getWriter() {
162-
if (printWriter == null) {
163-
stringWriter = new StringWriter();
164-
printWriter = new PrintWriter(stringWriter);
165-
}
166162
return printWriter;
167163
}
168164

instrumentation/servlet/servlet-3.0/library/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ dependencies {
2222
}
2323

2424
tasks {
25-
withType<Test>().configureEach {
25+
test {
2626
// required on jdk17
2727
jvmArgs("--add-opens=java.base/java.util=ALL-UNNAMED")
2828
jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")

instrumentation/servlet/servlet-3.0/testing/src/main/java/io/opentelemetry/instrumentation/servlet/v3_0/tomcat/AbstractTomcatServlet3Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ protected void configureServer(Context servletContext) {}
122122

123123
@BeforeEach
124124
void setUp() {
125-
accessLogValve.getLoggedIds().clear();
125+
accessLogValve.clearLoggedIds();
126126
testing().clearAllExportedData();
127127
}
128128

instrumentation/servlet/servlet-3.0/testing/src/main/java/io/opentelemetry/instrumentation/servlet/v3_0/tomcat/TestAccessLogValve.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,15 @@ public TestAccessLogValve() {
2828
}
2929

3030
public List<Map.Entry<String, String>> getLoggedIds() {
31-
return loggedIds;
31+
synchronized (loggedIds) {
32+
return new ArrayList<>(loggedIds);
33+
}
34+
}
35+
36+
public void clearLoggedIds() {
37+
synchronized (loggedIds) {
38+
loggedIds.clear();
39+
}
3240
}
3341

3442
@Override

instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/async/AsyncStartAdvice.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
1212
import jakarta.servlet.AsyncContext;
1313
import jakarta.servlet.http.HttpServletRequest;
14+
import javax.annotation.Nullable;
1415
import net.bytebuddy.asm.Advice;
1516
import net.bytebuddy.implementation.bytecode.assign.Assigner;
1617

@@ -25,8 +26,9 @@ public static CallDepth startAsyncEnter() {
2526
return callDepth;
2627
}
2728

28-
@Advice.OnMethodExit(suppress = Throwable.class, inline = false)
29+
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class, inline = false)
2930
public static void startAsyncExit(
31+
@Advice.Thrown @Nullable Throwable throwable,
3032
@Advice.This(typing = Assigner.Typing.DYNAMIC) HttpServletRequest request,
3133
@Advice.Enter CallDepth callDepth) {
3234

@@ -35,7 +37,7 @@ public static void startAsyncExit(
3537
return;
3638
}
3739

38-
if (request != null) {
40+
if (throwable == null && request != null) {
3941
helper().attachAsyncListener(request, Java8BytecodeBridge.currentContext());
4042
}
4143
}

instrumentation/servlet/servlet-5.0/jetty11-testing/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ otelJava {
2020
}
2121

2222
tasks {
23-
withType<Test>().configureEach {
23+
test {
2424
jvmArgs("-Dotel.instrumentation.servlet.experimental.capture-request-parameters=test-parameter")
2525
}
2626
}

instrumentation/servlet/servlet-5.0/jetty12-testing/build.gradle.kts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ otelJava {
1818
}
1919

2020
tasks {
21-
withType<Test>().configureEach {
21+
test {
2222
jvmArgs("-Dotel.instrumentation.servlet.experimental.capture-request-parameters=test-parameter")
2323
systemProperty("collectMetadata", otelProps.collectMetadata)
24+
systemProperty(
25+
"metadataConfig",
26+
"otel.instrumentation.servlet.experimental.capture-request-parameters=test-parameter",
27+
)
2428
}
2529
}

instrumentation/servlet/servlet-5.0/library/src/main/java/io/opentelemetry/instrumentation/servlet/v5_0/internal/Servlet5TelemetryFilter.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,11 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
108108
public void destroy() {}
109109

110110
private class OtelHttpServletRequest extends HttpServletRequestWrapper {
111-
final Context context;
112-
final ServletRequestContext<HttpServletRequest> requestContext;
113-
final ServletResponseContext<HttpServletResponse> responseContext;
114-
boolean hasAsyncListener = false;
115-
@Nullable Throwable asyncException;
111+
private final Context context;
112+
private final ServletRequestContext<HttpServletRequest> requestContext;
113+
private final ServletResponseContext<HttpServletResponse> responseContext;
114+
private boolean hasAsyncListener = false;
115+
@Nullable private Throwable asyncException;
116116

117117
OtelHttpServletRequest(
118118
HttpServletRequest request,
@@ -235,6 +235,7 @@ public void start(Runnable runnable) {
235235
runnable.run();
236236
} catch (Throwable t) {
237237
otelRequest.asyncException = t;
238+
throw t;
238239
}
239240
});
240241
}

instrumentation/servlet/servlet-5.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/AbstractServlet5Test.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import io.opentelemetry.api.trace.SpanKind;
2222
import io.opentelemetry.instrumentation.api.internal.HttpConstants;
23+
import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension;
2324
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpServerTest;
2425
import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions;
2526
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint;
@@ -30,9 +31,12 @@
3031
import io.opentelemetry.testing.internal.armeria.common.AggregatedHttpResponse;
3132
import jakarta.servlet.Servlet;
3233
import org.junit.jupiter.api.Test;
34+
import org.junit.jupiter.api.extension.RegisterExtension;
3335

3436
public abstract class AbstractServlet5Test<SERVER, CONTEXT> extends AbstractHttpServerTest<SERVER> {
3537

38+
@RegisterExtension static final AutoCleanupExtension cleanup = AutoCleanupExtension.create();
39+
3640
public static final ServerEndpoint HTML_PRINT_WRITER =
3741
new ServerEndpoint(
3842
"HTML_PRINT_WRITER",
@@ -157,6 +161,8 @@ void snippetInjectionWithServletOutputStream() {
157161

158162
ExperimentalSnippetHolder.setSnippet(
159163
"\n <script type=\"text/javascript\"> Test Test</script>");
164+
cleanup.deferCleanup(() -> ExperimentalSnippetHolder.setSnippet(""));
165+
160166
AggregatedHttpRequest request = request(HTML_SERVLET_OUTPUT_STREAM, "GET");
161167
AggregatedHttpResponse response = client.execute(request).aggregate().join();
162168

@@ -176,8 +182,6 @@ void snippetInjectionWithServletOutputStream() {
176182
assertThat(response.contentUtf8()).isEqualTo(result);
177183
assertThat(response.headers().contentLength()).isEqualTo(result.length());
178184

179-
ExperimentalSnippetHolder.setSnippet("");
180-
181185
String expectedRoute = expectedHttpRoute(HTML_SERVLET_OUTPUT_STREAM, "GET");
182186
testing()
183187
.waitAndAssertTraces(
@@ -198,6 +202,8 @@ void snippetInjectionWithPrintWriter() {
198202
assumeTrue(isAgentTest());
199203

200204
ExperimentalSnippetHolder.setSnippet("\n <script type=\"text/javascript\"> Test </script>");
205+
cleanup.deferCleanup(() -> ExperimentalSnippetHolder.setSnippet(""));
206+
201207
AggregatedHttpRequest request = request(HTML_PRINT_WRITER, "GET");
202208
AggregatedHttpResponse response = client.execute(request).aggregate().join();
203209

@@ -218,8 +224,6 @@ void snippetInjectionWithPrintWriter() {
218224
assertThat(response.contentUtf8()).isEqualTo(result);
219225
assertThat(response.headers().contentLength()).isEqualTo(result.length());
220226

221-
ExperimentalSnippetHolder.setSnippet("");
222-
223227
String expectedRoute = expectedHttpRoute(HTML_PRINT_WRITER, "GET");
224228
testing()
225229
.waitAndAssertTraces(

instrumentation/servlet/servlet-5.0/tomcat-testing/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ if (otelProps.testLatestDeps) {
2020
}
2121

2222
tasks {
23-
withType<Test>().configureEach {
23+
test {
2424
jvmArgs("-Dotel.instrumentation.servlet.experimental.capture-request-parameters=test-parameter")
2525
}
2626
}

0 commit comments

Comments
 (0)