From cee5961646532b257b317598ca68c73de14ef83f Mon Sep 17 00:00:00 2001 From: Shashank Patidar Date: Thu, 28 Jan 2021 18:47:17 +0530 Subject: [PATCH 1/4] adding tests for servlet rw --- ...derContextAccessInstrumentationModule.java | 80 ++++++++++++ .../BufferedReaderInstrumentationTest.java | 81 ++++++++++++ ...terContextAccessInstrumentationModule.java | 82 +++++++++++++ .../PrintWriterInstrumentationTest.java | 115 ++++++++++++++++++ .../org/ServletReadWriteContextAccess.java | 31 +++++ .../src/test/java/org/TestBufferedReader.java | 27 ++++ .../src/test/java/org/TestPrintWriter.java | 27 ++++ ...ry.javaagent.tooling.InstrumentationModule | 2 + 8 files changed, 445 insertions(+) create mode 100644 instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderContextAccessInstrumentationModule.java create mode 100644 instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java create mode 100644 instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterContextAccessInstrumentationModule.java create mode 100644 instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java create mode 100644 instrumentation/servlet/servlet-rw/src/test/java/org/ServletReadWriteContextAccess.java create mode 100644 instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java create mode 100644 instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java create mode 100644 instrumentation/servlet/servlet-rw/src/test/resources/META-INF/services/io.opentelemetry.javaagent.tooling.InstrumentationModule diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderContextAccessInstrumentationModule.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderContextAccessInstrumentationModule.java new file mode 100644 index 000000000..11c7cfd36 --- /dev/null +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderContextAccessInstrumentationModule.java @@ -0,0 +1,80 @@ +/* + * Copyright The Hypertrace Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.opentelemetry.javaagent.instrumentation.hypertrace.servlet.rw.reader; + +import static net.bytebuddy.matcher.ElementMatchers.*; + +import io.opentelemetry.javaagent.instrumentation.api.ContextStore; +import io.opentelemetry.javaagent.instrumentation.api.InstrumentationContext; +import io.opentelemetry.javaagent.tooling.InstrumentationModule; +import io.opentelemetry.javaagent.tooling.TypeInstrumentation; +import java.io.BufferedReader; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.hypertrace.agent.core.instrumentation.buffer.CharBufferSpanPair; + +// SPI explicitly added in META-INF/services/... +public class BufferedReaderContextAccessInstrumentationModule extends InstrumentationModule { + + public BufferedReaderContextAccessInstrumentationModule() { + super("test-buffered-reader"); + } + + @Override + protected Map contextStore() { + return Collections.singletonMap("java.io.BufferedReader", CharBufferSpanPair.class.getName()); + } + + @Override + public List typeInstrumentations() { + return Collections.singletonList(new BufferedReaderTriggerInstrumentation()); + } + + class BufferedReaderTriggerInstrumentation implements TypeInstrumentation { + + @Override + public ElementMatcher typeMatcher() { + return named("org.ServletReadWriteContextAccess"); + } + + @Override + public Map, String> transformers() { + Map, String> matchers = new HashMap<>(); + matchers.put( + named("addToBufferedReaderContext").and(takesArguments(2)).and(isPublic()), + BufferedReaderContextAccessInstrumentationModule.class.getName() + "$TestAdvice"); + return matchers; + } + } + + static class TestAdvice { + @Advice.OnMethodEnter(suppress = Throwable.class) + public static void enter( + @Advice.Argument(0) BufferedReader bufferedReader, + @Advice.Argument(1) CharBufferSpanPair metadata) { + ContextStore contextStore = + InstrumentationContext.get(BufferedReader.class, CharBufferSpanPair.class); + contextStore.put(bufferedReader, metadata); + } + } +} diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java new file mode 100644 index 000000000..76688046a --- /dev/null +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java @@ -0,0 +1,81 @@ +/* + * Copyright The Hypertrace Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.opentelemetry.javaagent.instrumentation.hypertrace.servlet.rw.reader; + +import io.opentelemetry.api.trace.Span; +import java.io.BufferedReader; +import java.io.CharArrayReader; +import java.io.IOException; +import org.ServletReadWriteContextAccess; +import org.TestBufferedReader; +import org.hypertrace.agent.core.instrumentation.buffer.*; +import org.hypertrace.agent.testing.AbstractInstrumenterTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class BufferedReaderInstrumentationTest extends AbstractInstrumenterTest { + + private static final String TEST_SPAN_NAME = "foo"; + private static final String BODY = "boobar"; + + @Test + public void read() throws IOException { + Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); + + BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); + + ServletReadWriteContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + + while (bufferedReader.read() != -1) {} + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void read_callDepth_isCleared() throws IOException { + Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); + + BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + bufferedReader.read(); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); + + ServletReadWriteContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + + while (bufferedReader.read() != -1) {} + Assertions.assertEquals(BODY.substring(1), buffer.toString()); + } + + @Test + public void read_callDepth_char_arr_offset() throws IOException { + Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); + + BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + bufferedReader.read(new char[2]); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); + + ServletReadWriteContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + + while (bufferedReader.read(new char[BODY.length()]) != -1) {} + Assertions.assertEquals(BODY.substring(2), buffer.toString()); + } +} diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterContextAccessInstrumentationModule.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterContextAccessInstrumentationModule.java new file mode 100644 index 000000000..82a2affae --- /dev/null +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterContextAccessInstrumentationModule.java @@ -0,0 +1,82 @@ +/* + * Copyright The Hypertrace Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.opentelemetry.javaagent.instrumentation.hypertrace.servlet.rw.writer; + +import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.takesArguments; + +import io.opentelemetry.javaagent.instrumentation.api.ContextStore; +import io.opentelemetry.javaagent.instrumentation.api.InstrumentationContext; +import io.opentelemetry.javaagent.tooling.InstrumentationModule; +import io.opentelemetry.javaagent.tooling.TypeInstrumentation; +import java.io.PrintWriter; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.method.MethodDescription; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; +import org.hypertrace.agent.core.instrumentation.buffer.BoundedCharArrayWriter; + +// SPI explicitly added in META-INF/services/... +public class PrintWriterContextAccessInstrumentationModule extends InstrumentationModule { + + public PrintWriterContextAccessInstrumentationModule() { + super("test-print-writer"); + } + + @Override + protected Map contextStore() { + return Collections.singletonMap("java.io.PrintWriter", BoundedCharArrayWriter.class.getName()); + } + + @Override + public List typeInstrumentations() { + return Collections.singletonList(new PrintWriterTriggerInstrumentation()); + } + + class PrintWriterTriggerInstrumentation implements TypeInstrumentation { + + @Override + public ElementMatcher typeMatcher() { + return named("org.ServletReadWriteContextAccess"); + } + + @Override + public Map, String> transformers() { + Map, String> matchers = new HashMap<>(); + matchers.put( + named("addToPrintWriterContext").and(takesArguments(2)).and(isPublic()), + PrintWriterContextAccessInstrumentationModule.class.getName() + "$TestAdvice"); + return matchers; + } + } + + static class TestAdvice { + @Advice.OnMethodEnter(suppress = Throwable.class) + public static void enter( + @Advice.Argument(0) PrintWriter printWriter, + @Advice.Argument(1) BoundedCharArrayWriter metadata) { + ContextStore contextStore = + InstrumentationContext.get(PrintWriter.class, BoundedCharArrayWriter.class); + contextStore.put(printWriter, metadata); + } + } +} diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java new file mode 100644 index 000000000..5f5820b3e --- /dev/null +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java @@ -0,0 +1,115 @@ +/* + * Copyright The Hypertrace Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.opentelemetry.javaagent.instrumentation.hypertrace.servlet.rw.writer; + +import java.io.CharArrayWriter; +import java.io.PrintWriter; +import org.ServletReadWriteContextAccess; +import org.TestPrintWriter; +import org.hypertrace.agent.core.instrumentation.buffer.BoundedBuffersFactory; +import org.hypertrace.agent.core.instrumentation.buffer.BoundedCharArrayWriter; +import org.hypertrace.agent.testing.AbstractInstrumenterTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class PrintWriterInstrumentationTest extends AbstractInstrumenterTest { + + private static final String BODY = "boobar"; + + @Test + public void write_single_char() { + PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + + char[] chars = BODY.toCharArray(); + for (int i = 0; i < BODY.length(); i++) { + printWriter.write(chars[i]); + } + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void write_char_arr() { + PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + + printWriter.write(BODY.toCharArray()); + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void write_char_arr_offset() { + PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + + char[] chars = BODY.toCharArray(); + printWriter.write(chars, 0, 2); + printWriter.write(chars, 2, chars.length - 2); + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void write_str() { + PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + + printWriter.write(BODY); + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void write_str_offset() { + PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + + printWriter.write(BODY, 0, 2); + printWriter.write(BODY, 2, BODY.length() - 2); + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void print_str() { + PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + + printWriter.print(BODY); + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void println_str() { + PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + + printWriter.println(BODY); + Assertions.assertEquals(BODY + "\n", buffer.toString()); + } +} diff --git a/instrumentation/servlet/servlet-rw/src/test/java/org/ServletReadWriteContextAccess.java b/instrumentation/servlet/servlet-rw/src/test/java/org/ServletReadWriteContextAccess.java new file mode 100644 index 000000000..d4c6a26f4 --- /dev/null +++ b/instrumentation/servlet/servlet-rw/src/test/java/org/ServletReadWriteContextAccess.java @@ -0,0 +1,31 @@ +/* + * Copyright The Hypertrace Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org; + +import java.io.BufferedReader; +import java.io.PrintWriter; +import org.hypertrace.agent.core.instrumentation.buffer.BoundedCharArrayWriter; +import org.hypertrace.agent.core.instrumentation.buffer.CharBufferSpanPair; + +public class ServletReadWriteContextAccess { + + public static void addToBufferedReaderContext( + BufferedReader bufferedReader, CharBufferSpanPair buffer) {} + + public static void addToPrintWriterContext( + PrintWriter printWriter, BoundedCharArrayWriter buffer) {} +} diff --git a/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java b/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java new file mode 100644 index 000000000..aea520eaa --- /dev/null +++ b/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java @@ -0,0 +1,27 @@ +/* + * Copyright The Hypertrace Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org; + +import java.io.BufferedReader; +import java.io.Reader; +import org.jetbrains.annotations.NotNull; + +public class TestBufferedReader extends BufferedReader { + public TestBufferedReader(@NotNull Reader in) { + super(in); + } +} diff --git a/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java b/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java new file mode 100644 index 000000000..45f7e655d --- /dev/null +++ b/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java @@ -0,0 +1,27 @@ +/* + * Copyright The Hypertrace Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org; + +import java.io.PrintWriter; +import java.io.Writer; +import org.jetbrains.annotations.NotNull; + +public class TestPrintWriter extends PrintWriter { + public TestPrintWriter(@NotNull Writer out) { + super(out); + } +} diff --git a/instrumentation/servlet/servlet-rw/src/test/resources/META-INF/services/io.opentelemetry.javaagent.tooling.InstrumentationModule b/instrumentation/servlet/servlet-rw/src/test/resources/META-INF/services/io.opentelemetry.javaagent.tooling.InstrumentationModule new file mode 100644 index 000000000..61ffe7f24 --- /dev/null +++ b/instrumentation/servlet/servlet-rw/src/test/resources/META-INF/services/io.opentelemetry.javaagent.tooling.InstrumentationModule @@ -0,0 +1,2 @@ +io.opentelemetry.javaagent.instrumentation.hypertrace.servlet.rw.reader.BufferedReaderContextAccessInstrumentationModule +io.opentelemetry.javaagent.instrumentation.hypertrace.servlet.rw.writer.PrintWriterContextAccessInstrumentationModule From 701be3f6e4b87706a39336803dd0105e0ffc59b7 Mon Sep 17 00:00:00 2001 From: Shashank Patidar Date: Fri, 29 Jan 2021 11:00:44 +0530 Subject: [PATCH 2/4] adding tests for all methods and refactoring --- ...derContextAccessInstrumentationModule.java | 2 +- .../BufferedReaderInstrumentationTest.java | 56 +++++++++++++++++-- ...terContextAccessInstrumentationModule.java | 2 +- .../PrintWriterInstrumentationTest.java | 27 ++++++--- ...fferedReaderPrintWriterContextAccess.java} | 4 +- .../src/test/java/org/TestBufferedReader.java | 3 +- .../src/test/java/org/TestPrintWriter.java | 3 +- 7 files changed, 77 insertions(+), 20 deletions(-) rename instrumentation/servlet/servlet-rw/src/test/java/org/{ServletReadWriteContextAccess.java => BufferedReaderPrintWriterContextAccess.java} (90%) diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderContextAccessInstrumentationModule.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderContextAccessInstrumentationModule.java index 11c7cfd36..0ce3647b1 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderContextAccessInstrumentationModule.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderContextAccessInstrumentationModule.java @@ -54,7 +54,7 @@ class BufferedReaderTriggerInstrumentation implements TypeInstrumentation { @Override public ElementMatcher typeMatcher() { - return named("org.ServletReadWriteContextAccess"); + return named("org.BufferedReaderPrintWriterContextAccess"); } @Override diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java index 76688046a..81a32a3be 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java @@ -20,7 +20,7 @@ import java.io.BufferedReader; import java.io.CharArrayReader; import java.io.IOException; -import org.ServletReadWriteContextAccess; +import org.BufferedReaderPrintWriterContextAccess; import org.TestBufferedReader; import org.hypertrace.agent.core.instrumentation.buffer.*; import org.hypertrace.agent.testing.AbstractInstrumenterTest; @@ -41,7 +41,7 @@ public void read() throws IOException { BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - ServletReadWriteContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); while (bufferedReader.read() != -1) {} Assertions.assertEquals(BODY, buffer.toString()); @@ -57,14 +57,29 @@ public void read_callDepth_isCleared() throws IOException { BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - ServletReadWriteContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); while (bufferedReader.read() != -1) {} Assertions.assertEquals(BODY.substring(1), buffer.toString()); } @Test - public void read_callDepth_char_arr_offset() throws IOException { + public void read_char_arr() throws IOException { + Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); + + BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); + + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + + while (bufferedReader.read(new char[BODY.length()]) != -1) {} + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void read_callDepth_char_arr() throws IOException { Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); @@ -73,9 +88,40 @@ public void read_callDepth_char_arr_offset() throws IOException { BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - ServletReadWriteContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); while (bufferedReader.read(new char[BODY.length()]) != -1) {} Assertions.assertEquals(BODY.substring(2), buffer.toString()); } + + @Test + public void read_char_arr_offset() throws IOException { + Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); + + BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); + + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + + bufferedReader.read(new char[BODY.length()], 0, 2); + bufferedReader.read(new char[BODY.length()], 2, BODY.length()-2); + Assertions.assertEquals(BODY, buffer.toString()); + } + + @Test + public void readLine() throws IOException { + Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); + + BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader((BODY+"\n").toCharArray())); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); + + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + + bufferedReader.readLine(); + Assertions.assertEquals(BODY, buffer.toString()); + } } diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterContextAccessInstrumentationModule.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterContextAccessInstrumentationModule.java index 82a2affae..8dbcf0f8b 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterContextAccessInstrumentationModule.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterContextAccessInstrumentationModule.java @@ -56,7 +56,7 @@ class PrintWriterTriggerInstrumentation implements TypeInstrumentation { @Override public ElementMatcher typeMatcher() { - return named("org.ServletReadWriteContextAccess"); + return named("org.BufferedReaderPrintWriterContextAccess"); } @Override diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java index 5f5820b3e..2dd142f06 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java @@ -18,7 +18,7 @@ import java.io.CharArrayWriter; import java.io.PrintWriter; -import org.ServletReadWriteContextAccess; +import org.BufferedReaderPrintWriterContextAccess; import org.TestPrintWriter; import org.hypertrace.agent.core.instrumentation.buffer.BoundedBuffersFactory; import org.hypertrace.agent.core.instrumentation.buffer.BoundedCharArrayWriter; @@ -35,7 +35,7 @@ public void write_single_char() { PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); - ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); char[] chars = BODY.toCharArray(); for (int i = 0; i < BODY.length(); i++) { @@ -49,7 +49,7 @@ public void write_char_arr() { PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); - ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); printWriter.write(BODY.toCharArray()); Assertions.assertEquals(BODY, buffer.toString()); @@ -60,7 +60,7 @@ public void write_char_arr_offset() { PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); - ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); char[] chars = BODY.toCharArray(); printWriter.write(chars, 0, 2); @@ -73,7 +73,7 @@ public void write_str() { PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); - ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); printWriter.write(BODY); Assertions.assertEquals(BODY, buffer.toString()); @@ -84,7 +84,7 @@ public void write_str_offset() { PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); - ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); printWriter.write(BODY, 0, 2); printWriter.write(BODY, 2, BODY.length() - 2); @@ -96,18 +96,29 @@ public void print_str() { PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); - ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); printWriter.print(BODY); Assertions.assertEquals(BODY, buffer.toString()); } + @Test + public void println() { + PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + + BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); + BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); + + printWriter.println(); + Assertions.assertEquals("\n", buffer.toString()); + } + @Test public void println_str() { PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); - ServletReadWriteContextAccess.addToPrintWriterContext(printWriter, buffer); + BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); printWriter.println(BODY); Assertions.assertEquals(BODY + "\n", buffer.toString()); diff --git a/instrumentation/servlet/servlet-rw/src/test/java/org/ServletReadWriteContextAccess.java b/instrumentation/servlet/servlet-rw/src/test/java/org/BufferedReaderPrintWriterContextAccess.java similarity index 90% rename from instrumentation/servlet/servlet-rw/src/test/java/org/ServletReadWriteContextAccess.java rename to instrumentation/servlet/servlet-rw/src/test/java/org/BufferedReaderPrintWriterContextAccess.java index d4c6a26f4..867f6e20b 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/org/ServletReadWriteContextAccess.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/org/BufferedReaderPrintWriterContextAccess.java @@ -21,7 +21,9 @@ import org.hypertrace.agent.core.instrumentation.buffer.BoundedCharArrayWriter; import org.hypertrace.agent.core.instrumentation.buffer.CharBufferSpanPair; -public class ServletReadWriteContextAccess { +public class BufferedReaderPrintWriterContextAccess { + + private BufferedReaderPrintWriterContextAccess() {} public static void addToBufferedReaderContext( BufferedReader bufferedReader, CharBufferSpanPair buffer) {} diff --git a/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java b/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java index aea520eaa..81b9f21cb 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java @@ -18,10 +18,9 @@ import java.io.BufferedReader; import java.io.Reader; -import org.jetbrains.annotations.NotNull; public class TestBufferedReader extends BufferedReader { - public TestBufferedReader(@NotNull Reader in) { + public TestBufferedReader(Reader in) { super(in); } } diff --git a/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java b/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java index 45f7e655d..65e52b8ea 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java @@ -18,10 +18,9 @@ import java.io.PrintWriter; import java.io.Writer; -import org.jetbrains.annotations.NotNull; public class TestPrintWriter extends PrintWriter { - public TestPrintWriter(@NotNull Writer out) { + public TestPrintWriter(Writer out) { super(out); } } From 2776a6e30539168ae7598bb853e86b0b05a54032 Mon Sep 17 00:00:00 2001 From: Shashank Patidar Date: Fri, 29 Jan 2021 11:03:33 +0530 Subject: [PATCH 3/4] spotless apply for build --- .../BufferedReaderInstrumentationTest.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java index 81a32a3be..21a83f884 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java @@ -41,7 +41,8 @@ public void read() throws IOException { BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext( + bufferedReader, bufferSpanPair); while (bufferedReader.read() != -1) {} Assertions.assertEquals(BODY, buffer.toString()); @@ -57,7 +58,8 @@ public void read_callDepth_isCleared() throws IOException { BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext( + bufferedReader, bufferSpanPair); while (bufferedReader.read() != -1) {} Assertions.assertEquals(BODY.substring(1), buffer.toString()); @@ -72,7 +74,8 @@ public void read_char_arr() throws IOException { BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext( + bufferedReader, bufferSpanPair); while (bufferedReader.read(new char[BODY.length()]) != -1) {} Assertions.assertEquals(BODY, buffer.toString()); @@ -88,7 +91,8 @@ public void read_callDepth_char_arr() throws IOException { BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext( + bufferedReader, bufferSpanPair); while (bufferedReader.read(new char[BODY.length()]) != -1) {} Assertions.assertEquals(BODY.substring(2), buffer.toString()); @@ -103,10 +107,11 @@ public void read_char_arr_offset() throws IOException { BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext( + bufferedReader, bufferSpanPair); bufferedReader.read(new char[BODY.length()], 0, 2); - bufferedReader.read(new char[BODY.length()], 2, BODY.length()-2); + bufferedReader.read(new char[BODY.length()], 2, BODY.length() - 2); Assertions.assertEquals(BODY, buffer.toString()); } @@ -114,12 +119,14 @@ public void read_char_arr_offset() throws IOException { public void readLine() throws IOException { Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); - BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader((BODY+"\n").toCharArray())); + BufferedReader bufferedReader = + new TestBufferedReader(new CharArrayReader((BODY + "\n").toCharArray())); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); - BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext(bufferedReader, bufferSpanPair); + BufferedReaderPrintWriterContextAccess.addToBufferedReaderContext( + bufferedReader, bufferSpanPair); bufferedReader.readLine(); Assertions.assertEquals(BODY, buffer.toString()); From 1ef1c33212cfb8d405d01fc878c48497a0902b99 Mon Sep 17 00:00:00 2001 From: Shashank Patidar Date: Fri, 29 Jan 2021 17:39:12 +0530 Subject: [PATCH 4/4] removing test subclasses --- .../BufferedReaderInstrumentationTest.java | 13 +++++----- .../PrintWriterInstrumentationTest.java | 17 ++++++------ .../src/test/java/org/TestBufferedReader.java | 26 ------------------- .../src/test/java/org/TestPrintWriter.java | 26 ------------------- 4 files changed, 14 insertions(+), 68 deletions(-) delete mode 100644 instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java delete mode 100644 instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java index 21a83f884..1822dbe3f 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/reader/BufferedReaderInstrumentationTest.java @@ -21,7 +21,6 @@ import java.io.CharArrayReader; import java.io.IOException; import org.BufferedReaderPrintWriterContextAccess; -import org.TestBufferedReader; import org.hypertrace.agent.core.instrumentation.buffer.*; import org.hypertrace.agent.testing.AbstractInstrumenterTest; import org.junit.jupiter.api.Assertions; @@ -36,7 +35,7 @@ public class BufferedReaderInstrumentationTest extends AbstractInstrumenterTest public void read() throws IOException { Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); - BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + BufferedReader bufferedReader = new BufferedReader(new CharArrayReader(BODY.toCharArray())); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); @@ -52,7 +51,7 @@ public void read() throws IOException { public void read_callDepth_isCleared() throws IOException { Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); - BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + BufferedReader bufferedReader = new BufferedReader(new CharArrayReader(BODY.toCharArray())); bufferedReader.read(); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); @@ -69,7 +68,7 @@ public void read_callDepth_isCleared() throws IOException { public void read_char_arr() throws IOException { Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); - BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + BufferedReader bufferedReader = new BufferedReader(new CharArrayReader(BODY.toCharArray())); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); @@ -85,7 +84,7 @@ public void read_char_arr() throws IOException { public void read_callDepth_char_arr() throws IOException { Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); - BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + BufferedReader bufferedReader = new BufferedReader(new CharArrayReader(BODY.toCharArray())); bufferedReader.read(new char[2]); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); @@ -102,7 +101,7 @@ public void read_callDepth_char_arr() throws IOException { public void read_char_arr_offset() throws IOException { Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); - BufferedReader bufferedReader = new TestBufferedReader(new CharArrayReader(BODY.toCharArray())); + BufferedReader bufferedReader = new BufferedReader(new CharArrayReader(BODY.toCharArray())); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); @@ -120,7 +119,7 @@ public void readLine() throws IOException { Span span = TEST_TRACER.spanBuilder(TEST_SPAN_NAME).startSpan(); BufferedReader bufferedReader = - new TestBufferedReader(new CharArrayReader((BODY + "\n").toCharArray())); + new BufferedReader(new CharArrayReader((BODY + "\n").toCharArray())); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); CharBufferSpanPair bufferSpanPair = new CharBufferSpanPair(span, buffer); diff --git a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java index 2dd142f06..da71ea8ec 100644 --- a/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java +++ b/instrumentation/servlet/servlet-rw/src/test/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/rw/writer/PrintWriterInstrumentationTest.java @@ -19,7 +19,6 @@ import java.io.CharArrayWriter; import java.io.PrintWriter; import org.BufferedReaderPrintWriterContextAccess; -import org.TestPrintWriter; import org.hypertrace.agent.core.instrumentation.buffer.BoundedBuffersFactory; import org.hypertrace.agent.core.instrumentation.buffer.BoundedCharArrayWriter; import org.hypertrace.agent.testing.AbstractInstrumenterTest; @@ -32,7 +31,7 @@ public class PrintWriterInstrumentationTest extends AbstractInstrumenterTest { @Test public void write_single_char() { - PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + PrintWriter printWriter = new PrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); @@ -46,7 +45,7 @@ public void write_single_char() { @Test public void write_char_arr() { - PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + PrintWriter printWriter = new PrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); @@ -57,7 +56,7 @@ public void write_char_arr() { @Test public void write_char_arr_offset() { - PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + PrintWriter printWriter = new PrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); @@ -70,7 +69,7 @@ public void write_char_arr_offset() { @Test public void write_str() { - PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + PrintWriter printWriter = new PrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); @@ -81,7 +80,7 @@ public void write_str() { @Test public void write_str_offset() { - PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + PrintWriter printWriter = new PrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); @@ -93,7 +92,7 @@ public void write_str_offset() { @Test public void print_str() { - PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + PrintWriter printWriter = new PrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); @@ -104,7 +103,7 @@ public void print_str() { @Test public void println() { - PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + PrintWriter printWriter = new PrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); @@ -115,7 +114,7 @@ public void println() { @Test public void println_str() { - PrintWriter printWriter = new TestPrintWriter(new CharArrayWriter()); + PrintWriter printWriter = new PrintWriter(new CharArrayWriter()); BoundedCharArrayWriter buffer = BoundedBuffersFactory.createWriter(); BufferedReaderPrintWriterContextAccess.addToPrintWriterContext(printWriter, buffer); diff --git a/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java b/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java deleted file mode 100644 index 81b9f21cb..000000000 --- a/instrumentation/servlet/servlet-rw/src/test/java/org/TestBufferedReader.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright The Hypertrace Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org; - -import java.io.BufferedReader; -import java.io.Reader; - -public class TestBufferedReader extends BufferedReader { - public TestBufferedReader(Reader in) { - super(in); - } -} diff --git a/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java b/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java deleted file mode 100644 index 65e52b8ea..000000000 --- a/instrumentation/servlet/servlet-rw/src/test/java/org/TestPrintWriter.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright The Hypertrace Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org; - -import java.io.PrintWriter; -import java.io.Writer; - -public class TestPrintWriter extends PrintWriter { - public TestPrintWriter(Writer out) { - super(out); - } -}