diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderMatcher.java index 88afbe8380..1dc632faa3 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderMatcher.java @@ -3,7 +3,11 @@ package datadog.trace.agent.tooling; import datadog.trace.bootstrap.DatadogClassLoader; import datadog.trace.bootstrap.PatchLogger; import io.opentracing.util.GlobalTracer; -import java.util.*; +import java.util.Collections; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.matcher.ElementMatcher; @@ -44,7 +48,7 @@ public class ClassLoaderMatcher { private static final Set CLASSLOADER_CLASSES_TO_SKIP; static { - final Set classesToSkip = new HashSet(); + final Set classesToSkip = new HashSet<>(); classesToSkip.add("org.codehaus.groovy.runtime.callsite.CallSiteClassLoader"); classesToSkip.add("sun.reflect.DelegatingClassLoader"); classesToSkip.add("jdk.internal.reflect.DelegatingClassLoader"); @@ -55,7 +59,7 @@ public class ClassLoaderMatcher { private SkipClassLoaderMatcher() {} @Override - public boolean matches(ClassLoader target) { + public boolean matches(final ClassLoader target) { if (target == BOOTSTRAP_CLASSLOADER) { // Don't skip bootstrap loader return false; @@ -63,7 +67,7 @@ public class ClassLoaderMatcher { return shouldSkipClass(target) || shouldSkipInstance(target); } - private boolean shouldSkipClass(ClassLoader loader) { + private boolean shouldSkipClass(final ClassLoader loader) { return CLASSLOADER_CLASSES_TO_SKIP.contains(loader.getClass().getName()); } @@ -77,7 +81,7 @@ public class ClassLoaderMatcher { if (null != cached) { return cached.booleanValue(); } - boolean skip = !delegatesToBootstrap(loader); + final boolean skip = !delegatesToBootstrap(loader); if (skip) { log.debug( "skipping classloader instance {} of type {}", loader, loader.getClass().getName()); @@ -87,7 +91,7 @@ public class ClassLoaderMatcher { } } - private boolean delegatesToBootstrap(ClassLoader loader) { + private boolean delegatesToBootstrap(final ClassLoader loader) { boolean delegates = true; if (!loadsExpectedClass(loader, GlobalTracer.class)) { log.debug("loader {} failed to delegate bootstrap opentracing class", loader); @@ -100,10 +104,10 @@ public class ClassLoaderMatcher { return delegates; } - private boolean loadsExpectedClass(ClassLoader loader, Class expectedClass) { + private boolean loadsExpectedClass(final ClassLoader loader, final Class expectedClass) { try { return loader.loadClass(expectedClass.getName()) == expectedClass; - } catch (ClassNotFoundException e) { + } catch (final ClassNotFoundException e) { return false; } } diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/MuzzleVisitor.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/MuzzleVisitor.java index 9fb91d0d51..a91d3e714b 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/MuzzleVisitor.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/MuzzleVisitor.java @@ -12,7 +12,12 @@ import net.bytebuddy.description.field.FieldList; import net.bytebuddy.description.method.MethodList; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.implementation.Implementation; -import net.bytebuddy.jar.asm.*; +import net.bytebuddy.jar.asm.ClassVisitor; +import net.bytebuddy.jar.asm.ClassWriter; +import net.bytebuddy.jar.asm.Label; +import net.bytebuddy.jar.asm.MethodVisitor; +import net.bytebuddy.jar.asm.Opcodes; +import net.bytebuddy.jar.asm.Type; import net.bytebuddy.pool.TypePool; /** Visit a class and add: a private instrumenationMuzzle field and getter */ diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/Reference.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/Reference.java index 6d8ce0cdb3..042b16ef34 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/Reference.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/Reference.java @@ -3,7 +3,10 @@ package datadog.trace.agent.tooling.muzzle; import static datadog.trace.agent.tooling.ClassLoaderMatcher.BOOTSTRAP_CLASSLOADER; import datadog.trace.agent.tooling.Utils; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** An immutable reference to a jvm class. */ public class Reference { diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java index 12ce1fe4f7..5780cc9c8f 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java @@ -3,8 +3,17 @@ package datadog.trace.agent.tooling.muzzle; import datadog.trace.agent.tooling.Utils; import java.io.IOException; import java.io.InputStream; -import java.util.*; -import net.bytebuddy.jar.asm.*; +import java.util.ArrayDeque; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import net.bytebuddy.jar.asm.ClassReader; +import net.bytebuddy.jar.asm.ClassVisitor; +import net.bytebuddy.jar.asm.Label; +import net.bytebuddy.jar.asm.MethodVisitor; +import net.bytebuddy.jar.asm.Opcodes; /** Visit a class and collect all references made by the visited class. */ public class ReferenceCreator extends ClassVisitor { diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceMatcher.java index cfcbdf4895..807af39d6f 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceMatcher.java @@ -3,7 +3,14 @@ package datadog.trace.agent.tooling.muzzle; import static net.bytebuddy.dynamic.loading.ClassLoadingStrategy.BOOTSTRAP_LOADER; import datadog.trace.agent.tooling.Utils; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.WeakHashMap; import lombok.extern.slf4j.Slf4j; /** Matches a set of references against a classloader. */ diff --git a/dd-java-agent/instrumentation/akka-http-10.0/src/lagomTest/java/EchoService.java b/dd-java-agent/instrumentation/akka-http-10.0/src/lagomTest/java/EchoService.java index 74db83c669..a5884c2064 100644 --- a/dd-java-agent/instrumentation/akka-http-10.0/src/lagomTest/java/EchoService.java +++ b/dd-java-agent/instrumentation/akka-http-10.0/src/lagomTest/java/EchoService.java @@ -1,8 +1,11 @@ -import static com.lightbend.lagom.javadsl.api.Service.*; +import static com.lightbend.lagom.javadsl.api.Service.named; +import static com.lightbend.lagom.javadsl.api.Service.namedCall; import akka.NotUsed; import akka.stream.javadsl.Source; -import com.lightbend.lagom.javadsl.api.*; +import com.lightbend.lagom.javadsl.api.Descriptor; +import com.lightbend.lagom.javadsl.api.Service; +import com.lightbend.lagom.javadsl.api.ServiceCall; public interface EchoService extends Service { diff --git a/dd-java-agent/instrumentation/akka-http-10.0/src/main/scala/datadog/trace/instrumentation/akkahttp/AkkaHttpClientInstrumentation.java b/dd-java-agent/instrumentation/akka-http-10.0/src/main/scala/datadog/trace/instrumentation/akkahttp/AkkaHttpClientInstrumentation.java index 10ac93b274..7a9e03b0ce 100644 --- a/dd-java-agent/instrumentation/akka-http-10.0/src/main/scala/datadog/trace/instrumentation/akkahttp/AkkaHttpClientInstrumentation.java +++ b/dd-java-agent/instrumentation/akka-http-10.0/src/main/scala/datadog/trace/instrumentation/akkahttp/AkkaHttpClientInstrumentation.java @@ -1,7 +1,9 @@ package datadog.trace.instrumentation.akkahttp; import static io.opentracing.log.Fields.ERROR_OBJECT; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.returns; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import akka.NotUsed; import akka.http.javadsl.model.headers.RawHeader; @@ -10,7 +12,7 @@ import akka.http.scaladsl.model.HttpRequest; import akka.http.scaladsl.model.HttpResponse; import akka.stream.scaladsl.Flow; import com.google.auto.service.AutoService; -import datadog.trace.agent.tooling.*; +import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.api.DDSpanTypes; import datadog.trace.api.DDTags; import io.opentracing.Scope; @@ -92,10 +94,10 @@ public final class AkkaHttpClientInstrumentation extends Instrumenter.Default { .withTag(Tags.HTTP_METHOD.getKey(), request.method().value()) .withTag(Tags.HTTP_URL.getKey(), request.getUri().toString()); } - Scope scope = builder.startActive(false); + final Scope scope = builder.startActive(false); if (request != null) { - AkkaHttpHeaders headers = new AkkaHttpHeaders(request); + final AkkaHttpHeaders headers = new AkkaHttpHeaders(request); GlobalTracer.get().inject(scope.span().context(), Format.Builtin.HTTP_HEADERS, headers); // Request is immutable, so we have to assign new value once we update headers request = headers.getRequest(); @@ -111,7 +113,7 @@ public final class AkkaHttpClientInstrumentation extends Instrumenter.Default { @Advice.Return final Future responseFuture, @Advice.Enter final Scope scope, @Advice.Thrown final Throwable throwable) { - Span span = scope.span(); + final Span span = scope.span(); if (throwable == null) { responseFuture.onComplete(new OnCompleteHandler(span), thiz.system().dispatcher()); } else { @@ -135,12 +137,12 @@ public final class AkkaHttpClientInstrumentation extends Instrumenter.Default { public static class OnCompleteHandler extends AbstractFunction1, Void> { private final Span span; - public OnCompleteHandler(Span span) { + public OnCompleteHandler(final Span span) { this.span = span; } @Override - public Void apply(Try result) { + public Void apply(final Try result) { if (result.isSuccess()) { Tags.HTTP_STATUS.set(span, result.get().status().intValue()); } else { @@ -155,7 +157,7 @@ public final class AkkaHttpClientInstrumentation extends Instrumenter.Default { public static class AkkaHttpHeaders implements TextMap { private HttpRequest request; - public AkkaHttpHeaders(HttpRequest request) { + public AkkaHttpHeaders(final HttpRequest request) { this.request = request; } diff --git a/dd-java-agent/instrumentation/akka-http-10.0/src/main/scala/datadog/trace/instrumentation/akkahttp/AkkaHttpServerInstrumentation.java b/dd-java-agent/instrumentation/akka-http-10.0/src/main/scala/datadog/trace/instrumentation/akkahttp/AkkaHttpServerInstrumentation.java index c9570b6d96..55294c3e41 100644 --- a/dd-java-agent/instrumentation/akka-http-10.0/src/main/scala/datadog/trace/instrumentation/akkahttp/AkkaHttpServerInstrumentation.java +++ b/dd-java-agent/instrumentation/akka-http-10.0/src/main/scala/datadog/trace/instrumentation/akkahttp/AkkaHttpServerInstrumentation.java @@ -1,14 +1,15 @@ package datadog.trace.instrumentation.akkahttp; import static io.opentracing.log.Fields.ERROR_OBJECT; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import akka.http.javadsl.model.HttpHeader; import akka.http.scaladsl.model.HttpRequest; import akka.http.scaladsl.model.HttpResponse; -import akka.stream.*; +import akka.stream.Materializer; import com.google.auto.service.AutoService; -import datadog.trace.agent.tooling.*; +import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.api.DDSpanTypes; import datadog.trace.api.DDTags; import datadog.trace.context.TraceScope; @@ -19,7 +20,10 @@ import io.opentracing.propagation.Format; import io.opentracing.propagation.TextMap; import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; @@ -90,13 +94,13 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { public static void wrapHandler( @Advice.Argument(value = 0, readOnly = false) Function1> handler, - @Advice.Argument(value = 7) Materializer materializer) { + @Advice.Argument(value = 7) final Materializer materializer) { handler = new DatadogAsyncWrapper(handler, materializer.executionContext()); } } public static class DatadogWrapperHelper { - public static Scope createSpan(HttpRequest request) { + public static Scope createSpan(final HttpRequest request) { final SpanContext extractedContext = GlobalTracer.get() .extract(Format.Builtin.HTTP_HEADERS, new AkkaHttpServerHeaders(request)); @@ -117,7 +121,7 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { return scope; } - public static void finishSpan(Span span, HttpResponse response) { + public static void finishSpan(final Span span, final HttpResponse response) { Tags.HTTP_STATUS.set(span, response.status().intValue()); if (GlobalTracer.get().scopeManager().active() instanceof TraceScope) { @@ -126,7 +130,7 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { span.finish(); } - public static void finishSpan(Span span, Throwable t) { + public static void finishSpan(final Span span, final Throwable t) { Tags.ERROR.set(span, true); span.log(Collections.singletonMap(ERROR_OBJECT, t)); Tags.HTTP_STATUS.set(span, 500); @@ -141,19 +145,19 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { public static class DatadogSyncWrapper extends AbstractFunction1 { private final Function1 userHandler; - public DatadogSyncWrapper(Function1 userHandler) { + public DatadogSyncWrapper(final Function1 userHandler) { this.userHandler = userHandler; } @Override - public HttpResponse apply(HttpRequest request) { + public HttpResponse apply(final HttpRequest request) { final Scope scope = DatadogWrapperHelper.createSpan(request); try { final HttpResponse response = userHandler.apply(request); scope.close(); DatadogWrapperHelper.finishSpan(scope.span(), response); return response; - } catch (Throwable t) { + } catch (final Throwable t) { scope.close(); DatadogWrapperHelper.finishSpan(scope.span(), t); throw t; @@ -167,19 +171,19 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { private final ExecutionContext executionContext; public DatadogAsyncWrapper( - Function1> userHandler, - ExecutionContext executionContext) { + final Function1> userHandler, + final ExecutionContext executionContext) { this.userHandler = userHandler; this.executionContext = executionContext; } @Override - public Future apply(HttpRequest request) { + public Future apply(final HttpRequest request) { final Scope scope = DatadogWrapperHelper.createSpan(request); Future futureResponse = null; try { futureResponse = userHandler.apply(request); - } catch (Throwable t) { + } catch (final Throwable t) { scope.close(); DatadogWrapperHelper.finishSpan(scope.span(), t); throw t; @@ -188,14 +192,14 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { futureResponse.transform( new AbstractFunction1() { @Override - public HttpResponse apply(HttpResponse response) { + public HttpResponse apply(final HttpResponse response) { DatadogWrapperHelper.finishSpan(scope.span(), response); return response; } }, new AbstractFunction1() { @Override - public Throwable apply(Throwable t) { + public Throwable apply(final Throwable t) { DatadogWrapperHelper.finishSpan(scope.span(), t); return t; } @@ -209,7 +213,7 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { public static class AkkaHttpServerHeaders implements TextMap { private final HttpRequest request; - public AkkaHttpServerHeaders(HttpRequest request) { + public AkkaHttpServerHeaders(final HttpRequest request) { this.request = request; } @@ -217,7 +221,7 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { public Iterator> iterator() { final Map javaMap = new HashMap<>(request.headers().size()); - for (HttpHeader header : request.getHeaders()) { + for (final HttpHeader header : request.getHeaders()) { javaMap.put(header.name(), header.value()); } @@ -225,7 +229,7 @@ public final class AkkaHttpServerInstrumentation extends Instrumenter.Default { } @Override - public void put(String name, String value) { + public void put(final String name, final String value) { throw new IllegalStateException("akka http server headers can only be extracted"); } } diff --git a/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/SpanDecorator.java b/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/SpanDecorator.java index 7f16cfef38..404e97c6a4 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/SpanDecorator.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-1.11.0/src/main/java/datadog/trace/instrumentation/aws/v0/SpanDecorator.java @@ -13,7 +13,11 @@ */ package datadog.trace.instrumentation.aws.v0; -import static io.opentracing.log.Fields.*; +import static io.opentracing.log.Fields.ERROR_KIND; +import static io.opentracing.log.Fields.ERROR_OBJECT; +import static io.opentracing.log.Fields.EVENT; +import static io.opentracing.log.Fields.MESSAGE; +import static io.opentracing.log.Fields.STACK; import com.amazonaws.AmazonWebServiceResponse; import com.amazonaws.Request; diff --git a/dd-java-agent/instrumentation/aws-java-sdk-1.11.106/src/main/java/datadog/trace/instrumentation/aws/v106/SpanDecorator.java b/dd-java-agent/instrumentation/aws-java-sdk-1.11.106/src/main/java/datadog/trace/instrumentation/aws/v106/SpanDecorator.java index 370b4f011f..27f77913c6 100644 --- a/dd-java-agent/instrumentation/aws-java-sdk-1.11.106/src/main/java/datadog/trace/instrumentation/aws/v106/SpanDecorator.java +++ b/dd-java-agent/instrumentation/aws-java-sdk-1.11.106/src/main/java/datadog/trace/instrumentation/aws/v106/SpanDecorator.java @@ -13,7 +13,11 @@ */ package datadog.trace.instrumentation.aws.v106; -import static io.opentracing.log.Fields.*; +import static io.opentracing.log.Fields.ERROR_KIND; +import static io.opentracing.log.Fields.ERROR_OBJECT; +import static io.opentracing.log.Fields.EVENT; +import static io.opentracing.log.Fields.MESSAGE; +import static io.opentracing.log.Fields.STACK; import com.amazonaws.AmazonWebServiceResponse; import com.amazonaws.Request; diff --git a/dd-java-agent/instrumentation/datastax-cassandra-3.2/src/main/java/datadog/trace/instrumentation/datastax/cassandra/TracingSession.java b/dd-java-agent/instrumentation/datastax-cassandra-3.2/src/main/java/datadog/trace/instrumentation/datastax/cassandra/TracingSession.java index 51c0a89dbd..29672c67f5 100644 --- a/dd-java-agent/instrumentation/datastax-cassandra-3.2/src/main/java/datadog/trace/instrumentation/datastax/cassandra/TracingSession.java +++ b/dd-java-agent/instrumentation/datastax-cassandra-3.2/src/main/java/datadog/trace/instrumentation/datastax/cassandra/TracingSession.java @@ -13,7 +13,11 @@ */ package datadog.trace.instrumentation.datastax.cassandra; -import static io.opentracing.log.Fields.*; +import static io.opentracing.log.Fields.ERROR_KIND; +import static io.opentracing.log.Fields.ERROR_OBJECT; +import static io.opentracing.log.Fields.EVENT; +import static io.opentracing.log.Fields.MESSAGE; +import static io.opentracing.log.Fields.STACK; import com.datastax.driver.core.BoundStatement; import com.datastax.driver.core.CloseFuture; @@ -244,7 +248,7 @@ class TracingSession implements Session { public void run() { try { finishSpan(span, future.get()); - } catch (InterruptedException | ExecutionException e) { + } catch (final InterruptedException | ExecutionException e) { finishSpan(span, e); } } diff --git a/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixCommandInstrumentation.java b/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixCommandInstrumentation.java index 3458e1be52..bb723c565b 100644 --- a/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixCommandInstrumentation.java +++ b/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixCommandInstrumentation.java @@ -14,7 +14,9 @@ import io.opentracing.Span; import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; import java.lang.reflect.Method; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import net.bytebuddy.asm.Advice; import net.bytebuddy.matcher.ElementMatcher; @@ -34,7 +36,7 @@ public class HystrixCommandInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( isMethod().and(named("run").or(named("getFallback"))), TraceAdvice.class.getName()); return transformers; diff --git a/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixThreadPoolInstrumentation.java b/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixThreadPoolInstrumentation.java index f4fd053cb6..ad924588ef 100644 --- a/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixThreadPoolInstrumentation.java +++ b/dd-java-agent/instrumentation/hystrix-1.4/src/main/java/datadog/trace/instrumentation/hystrix/HystrixThreadPoolInstrumentation.java @@ -10,7 +10,8 @@ import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.context.TraceScope; import io.opentracing.Scope; import io.opentracing.util.GlobalTracer; -import java.util.*; +import java.util.HashMap; +import java.util.Map; import net.bytebuddy.asm.Advice; import net.bytebuddy.matcher.ElementMatcher; diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ExecutorInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ExecutorInstrumentation.java index 31c1dbbaed..4bc99e0463 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ExecutorInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/ExecutorInstrumentation.java @@ -8,13 +8,19 @@ import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; -import datadog.trace.agent.tooling.*; +import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.bootstrap.CallDepthThreadLocalMap; import datadog.trace.context.TraceScope; import io.opentracing.Scope; import io.opentracing.util.GlobalTracer; import java.lang.reflect.Field; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; @@ -98,7 +104,7 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { // Check for possible prefixes match only if not whitelisted already if (!whitelisted) { - for (String name : WHITELISTED_EXECUTORS_PREFIXES) { + for (final String name : WHITELISTED_EXECUTORS_PREFIXES) { if (target.getName().startsWith(name)) { whitelisted = true; break; @@ -126,7 +132,7 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( named("execute").and(takesArgument(0, Runnable.class)), WrapRunnableAdvice.class.getName()); transformers.put( @@ -141,7 +147,6 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { public static class WrapRunnableAdvice { - @SuppressWarnings("unused") @Advice.OnMethodEnter(suppress = Throwable.class) public static DatadogWrapper enterJobSubmit( @Advice.Argument(value = 0, readOnly = false) Runnable task) { @@ -153,7 +158,6 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { return null; } - @SuppressWarnings("unused") @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void exitJobSubmit( @Advice.Enter final DatadogWrapper wrapper, @Advice.Thrown final Throwable throwable) { @@ -163,7 +167,6 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { public static class WrapCallableAdvice { - @SuppressWarnings("unused") @Advice.OnMethodEnter(suppress = Throwable.class) public static DatadogWrapper enterJobSubmit( @Advice.Argument(value = 0, readOnly = false) Callable task) { @@ -176,7 +179,6 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { return null; } - @SuppressWarnings("unused") @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void exitJobSubmit( @Advice.Enter final DatadogWrapper wrapper, @Advice.Thrown final Throwable throwable) { @@ -186,7 +188,6 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { public static class WrapCallableCollectionAdvice { - @SuppressWarnings("unused") @Advice.OnMethodEnter(suppress = Throwable.class) public static Collection wrapJob( @Advice.Argument(value = 0, readOnly = false) Collection> tasks) { @@ -196,7 +197,7 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { && tasks != null && DatadogWrapper.isTopLevelCall()) { final Collection> wrappedTasks = new ArrayList<>(tasks.size()); - for (Callable task : tasks) { + for (final Callable task : tasks) { if (task != null && !(task instanceof CallableWrapper)) { wrappedTasks.add(new CallableWrapper<>(task, (TraceScope) scope)); } @@ -207,7 +208,6 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { return null; } - @SuppressWarnings("unused") @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void checkCancel( @Advice.Enter final Collection wrappedJobs, @Advice.Thrown final Throwable throwable) { @@ -250,13 +250,11 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { * * @return true iff call is not nested */ - @SuppressWarnings("WeakerAccess") public static boolean isTopLevelCall() { return CallDepthThreadLocalMap.incrementCallDepth(ExecutorService.class) <= 0; } /** Reset nested calls to executor. */ - @SuppressWarnings("WeakerAccess") public static void resetNestedCalls() { CallDepthThreadLocalMap.reset(ExecutorService.class); } @@ -265,8 +263,7 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { * @param task task object * @return true iff given task object should be wrapped */ - @SuppressWarnings("WeakerAccess") - public static boolean shouldWrapTask(Object task) { + public static boolean shouldWrapTask(final Object task) { final Scope scope = GlobalTracer.get().scopeManager().active(); return (scope instanceof TraceScope && ((TraceScope) scope).isAsyncPropagating() @@ -281,7 +278,6 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { * @param wrapper task wrapper * @param throwable throwable that may have been thrown */ - @SuppressWarnings("WeakerAccess") public static void cleanUpOnMethodExit( final DatadogWrapper wrapper, final Throwable throwable) { if (null != wrapper) { @@ -356,7 +352,7 @@ public final class ExecutorInstrumentation extends Instrumenter.Default { if (o instanceof DatadogWrapper) { return (DatadogWrapper) o; } - } catch (IllegalArgumentException | IllegalAccessException e) { + } catch (final IllegalArgumentException | IllegalAccessException e) { } finally { field.setAccessible(false); } diff --git a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java index 0471b38d3c..3f6a4a0504 100644 --- a/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java +++ b/dd-java-agent/instrumentation/java-concurrent/src/main/java/datadog/trace/instrumentation/java/concurrent/FutureInstrumentation.java @@ -10,7 +10,12 @@ import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.instrumentation.java.concurrent.ExecutorInstrumentation.ConcurrentUtils; import datadog.trace.instrumentation.java.concurrent.ExecutorInstrumentation.DatadogWrapper; -import java.util.*; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; import java.util.concurrent.Future; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.asm.Advice; @@ -91,7 +96,7 @@ public final class FutureInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( named("cancel").and(returns(boolean.class)), CanceledFutureAdvice.class.getName()); return transformers; diff --git a/dd-java-agent/instrumentation/jax-rs-annotations/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsAnnotationsInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-annotations/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsAnnotationsInstrumentation.java index 9598fb539b..8ae0bd7de8 100644 --- a/dd-java-agent/instrumentation/jax-rs-annotations/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsAnnotationsInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-annotations/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsAnnotationsInstrumentation.java @@ -14,7 +14,9 @@ import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; import java.lang.annotation.Annotation; import java.lang.reflect.Method; -import java.util.*; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; import javax.ws.rs.HttpMethod; import javax.ws.rs.Path; import net.bytebuddy.asm.Advice; diff --git a/dd-java-agent/instrumentation/jax-rs-client/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java b/dd-java-agent/instrumentation/jax-rs-client/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java index 9dc0193a32..1315114efd 100644 --- a/dd-java-agent/instrumentation/jax-rs-client/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java +++ b/dd-java-agent/instrumentation/jax-rs-client/src/main/java/datadog/trace/instrumentation/jaxrs/JaxRsClientInstrumentation.java @@ -6,7 +6,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; import com.google.auto.service.AutoService; -import datadog.trace.agent.tooling.*; +import datadog.trace.agent.tooling.Instrumenter; import java.util.HashMap; import java.util.Map; import javax.ws.rs.client.ClientBuilder; @@ -36,7 +36,7 @@ public final class JaxRsClientInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( named("build").and(returns(hasSuperType(named("javax.ws.rs.client.Client")))), ClientBuilderAdvice.class.getName()); diff --git a/dd-java-agent/instrumentation/jms-1/src/main/java/datadog/trace/instrumentation/jms1/JMS1MessageConsumerInstrumentation.java b/dd-java-agent/instrumentation/jms-1/src/main/java/datadog/trace/instrumentation/jms1/JMS1MessageConsumerInstrumentation.java index 1b6d6ce48c..c9bc5896ac 100644 --- a/dd-java-agent/instrumentation/jms-1/src/main/java/datadog/trace/instrumentation/jms1/JMS1MessageConsumerInstrumentation.java +++ b/dd-java-agent/instrumentation/jms-1/src/main/java/datadog/trace/instrumentation/jms1/JMS1MessageConsumerInstrumentation.java @@ -11,7 +11,7 @@ import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import com.google.auto.service.AutoService; -import datadog.trace.agent.tooling.*; +import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.api.DDSpanTypes; import datadog.trace.api.DDTags; import datadog.trace.instrumentation.jms.util.MessagePropertyTextMap; @@ -23,7 +23,9 @@ import io.opentracing.propagation.Format; import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; import java.lang.reflect.Method; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.TimeUnit; import javax.jms.Message; import javax.jms.MessageConsumer; diff --git a/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java b/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java index 4405b4f721..ed11deeb25 100644 --- a/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java +++ b/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JSPInstrumentation.java @@ -1,7 +1,12 @@ package datadog.trace.instrumentation.jsp; import static io.opentracing.log.Fields.ERROR_OBJECT; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; +import static net.bytebuddy.matcher.ElementMatchers.isInterface; +import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.not; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; diff --git a/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JasperJSPCompilationContextInstrumentation.java b/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JasperJSPCompilationContextInstrumentation.java index e84af1ced5..9b3a80c4cf 100644 --- a/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JasperJSPCompilationContextInstrumentation.java +++ b/dd-java-agent/instrumentation/jsp-2.3/src/main/java/datadog/trace/instrumentation/jsp/JasperJSPCompilationContextInstrumentation.java @@ -2,7 +2,9 @@ package datadog.trace.instrumentation.jsp; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses; import static io.opentracing.log.Fields.ERROR_OBJECT; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; diff --git a/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceAsyncCommandsInstrumentation.java b/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceAsyncCommandsInstrumentation.java index 4b97aa5090..b7618f3108 100644 --- a/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceAsyncCommandsInstrumentation.java +++ b/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceAsyncCommandsInstrumentation.java @@ -1,7 +1,9 @@ package datadog.trace.instrumentation.lettuce; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; @@ -38,7 +40,7 @@ public class LettuceAsyncCommandsInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( isMethod() .and(named("dispatch")) diff --git a/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceClientInstrumentation.java b/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceClientInstrumentation.java index 93c6a00210..0f9316fce9 100644 --- a/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceClientInstrumentation.java +++ b/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceClientInstrumentation.java @@ -1,7 +1,13 @@ package datadog.trace.instrumentation.lettuce; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.isPrivate; +import static net.bytebuddy.matcher.ElementMatchers.nameEndsWith; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.returns; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; @@ -42,7 +48,7 @@ public final class LettuceClientInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( isMethod() .and(isPrivate()) diff --git a/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceReactiveCommandsInstrumentation.java b/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceReactiveCommandsInstrumentation.java index 395225e012..c65b573d4f 100644 --- a/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceReactiveCommandsInstrumentation.java +++ b/dd-java-agent/instrumentation/lettuce-5/src/main/java/datadog/trace/instrumentation/lettuce/LettuceReactiveCommandsInstrumentation.java @@ -1,7 +1,12 @@ package datadog.trace.instrumentation.lettuce; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.nameEndsWith; +import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.returns; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; @@ -43,7 +48,7 @@ public class LettuceReactiveCommandsInstrumentation extends Instrumenter.Default @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( isMethod() .and(named("createMono")) diff --git a/dd-java-agent/instrumentation/lettuce-5/src/main/java8/datadog/trace/instrumentation/lettuce/LettuceInstrumentationUtil.java b/dd-java-agent/instrumentation/lettuce-5/src/main/java8/datadog/trace/instrumentation/lettuce/LettuceInstrumentationUtil.java index d1da8d072f..4e6b83b9de 100644 --- a/dd-java-agent/instrumentation/lettuce-5/src/main/java8/datadog/trace/instrumentation/lettuce/LettuceInstrumentationUtil.java +++ b/dd-java-agent/instrumentation/lettuce-5/src/main/java8/datadog/trace/instrumentation/lettuce/LettuceInstrumentationUtil.java @@ -1,7 +1,9 @@ package datadog.trace.instrumentation.lettuce; import io.lettuce.core.protocol.RedisCommand; -import java.util.*; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; public class LettuceInstrumentationUtil { @@ -30,7 +32,7 @@ public class LettuceInstrumentationUtil { * @param commandName a redis command, without any prefixes * @return true if finish the span early (the command will not have a return value) */ - public static boolean doFinishSpanEarly(String commandName) { + public static boolean doFinishSpanEarly(final String commandName) { return nonInstrumentingCommands.contains(commandName); } @@ -51,7 +53,7 @@ public class LettuceInstrumentationUtil { * @return the redis command with a prefix if it is a command that will crash the trace agent, * otherwise, the original command is returned. */ - public static String getCommandResourceName(String actualCommandName) { + public static String getCommandResourceName(final String actualCommandName) { if (agentCrashingCommands.contains(actualCommandName)) { return AGENT_CRASHING_COMMAND_PREFIX + actualCommandName; } @@ -64,7 +66,7 @@ public class LettuceInstrumentationUtil { * @param command the lettuce RedisCommand object * @return the redis command as a string */ - public static String getCommandName(RedisCommand command) { + public static String getCommandName(final RedisCommand command) { String commandName = "Redis Command"; if (command != null) { /* diff --git a/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play/PlayInstrumentation.java b/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play/PlayInstrumentation.java index 35c6a35b43..4ae61e5335 100644 --- a/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play/PlayInstrumentation.java +++ b/dd-java-agent/instrumentation/play-2.4/src/main/java/datadog/trace/instrumentation/play/PlayInstrumentation.java @@ -3,11 +3,14 @@ package datadog.trace.instrumentation.play; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClassWithMethod; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClasses; import static io.opentracing.log.Fields.ERROR_OBJECT; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.returns; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import akka.japi.JavaPartialFunction; import com.google.auto.service.AutoService; -import datadog.trace.agent.tooling.*; +import datadog.trace.agent.tooling.Instrumenter; import datadog.trace.api.DDSpanTypes; import datadog.trace.api.DDTags; import datadog.trace.context.TraceScope; @@ -18,7 +21,10 @@ import io.opentracing.propagation.Format; import io.opentracing.propagation.TextMap; import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.asm.Advice; import net.bytebuddy.matcher.ElementMatcher; @@ -66,7 +72,7 @@ public final class PlayInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( named("apply") .and(takesArgument(0, named("play.api.mvc.Request"))) @@ -149,7 +155,7 @@ public final class PlayInstrumentation extends Instrumenter.Default { public static class PlayHeaders implements TextMap { private final Request request; - public PlayHeaders(Request request) { + public PlayHeaders(final Request request) { this.request = request; } @@ -166,7 +172,7 @@ public final class PlayInstrumentation extends Instrumenter.Default { } @Override - public void put(String s, String s1) { + public void put(final String s, final String s1) { throw new IllegalStateException("play headers can only be extracted"); } } @@ -174,18 +180,18 @@ public final class PlayInstrumentation extends Instrumenter.Default { public static class RequestError extends JavaPartialFunction { private final Span span; - public RequestError(Span span) { + public RequestError(final Span span) { this.span = span; } @Override - public Object apply(Throwable t, boolean isCheck) throws Exception { + public Object apply(final Throwable t, final boolean isCheck) throws Exception { try { if (GlobalTracer.get().scopeManager().active() instanceof TraceScope) { ((TraceScope) GlobalTracer.get().scopeManager().active()).setAsyncPropagation(false); } onError(span, t); - } catch (Throwable t2) { + } catch (final Throwable t2) { LoggerFactory.getLogger(RequestCallback.class).debug("error in play instrumentation", t); } span.finish(); @@ -203,18 +209,18 @@ public final class PlayInstrumentation extends Instrumenter.Default { public static class RequestCallback extends scala.runtime.AbstractFunction1 { private final Span span; - public RequestCallback(Span span) { + public RequestCallback(final Span span) { this.span = span; } @Override - public Result apply(Result result) { + public Result apply(final Result result) { if (GlobalTracer.get().scopeManager().active() instanceof TraceScope) { ((TraceScope) GlobalTracer.get().scopeManager().active()).setAsyncPropagation(false); } try { Tags.HTTP_STATUS.set(span, result.header().status()); - } catch (Throwable t) { + } catch (final Throwable t) { log.debug("error in play instrumentation", t); } span.finish(); diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/RatpackInstrumentation.java b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/RatpackInstrumentation.java index a536a86c45..da4c15bc74 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/RatpackInstrumentation.java +++ b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java/datadog/trace/instrumentation/ratpack/RatpackInstrumentation.java @@ -1,7 +1,14 @@ package datadog.trace.instrumentation.ratpack; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClassWithMethod; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.hasSuperType; +import static net.bytebuddy.matcher.ElementMatchers.isInterface; +import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.isStatic; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.not; +import static net.bytebuddy.matcher.ElementMatchers.returns; +import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; @@ -63,7 +70,7 @@ public final class RatpackInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( isMethod().and(isStatic()).and(named("buildBaseRegistry")), RatpackServerAdvice.RatpackServerRegistryAdvice.class.getName()); @@ -106,7 +113,7 @@ public final class RatpackInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( named("register").and(takesArguments(ACTION_TYPE_DESCRIPTION)), RatpackServerAdvice.ExecStarterAdvice.class.getName()); @@ -148,7 +155,7 @@ public final class RatpackInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( named("fork").and(returns(named("ratpack.exec.ExecStarter"))), RatpackServerAdvice.ExecutionAdvice.class.getName()); diff --git a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/impl/RatpackRequestExtractAdapter.java b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/impl/RatpackRequestExtractAdapter.java index 2e1fb6d6a1..f99bc4b040 100644 --- a/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/impl/RatpackRequestExtractAdapter.java +++ b/dd-java-agent/instrumentation/ratpack-1.4/src/main/java8/datadog/trace/instrumentation/ratpack/impl/RatpackRequestExtractAdapter.java @@ -1,7 +1,8 @@ package datadog.trace.instrumentation.ratpack.impl; import io.opentracing.propagation.TextMap; -import java.util.*; +import java.util.Iterator; +import java.util.Map; import ratpack.http.Request; import ratpack.util.MultiValueMap; @@ -12,8 +13,8 @@ import ratpack.util.MultiValueMap; public class RatpackRequestExtractAdapter implements TextMap { private final MultiValueMap headers; - RatpackRequestExtractAdapter(Request request) { - this.headers = request.getHeaders().asMultiValueMap(); + RatpackRequestExtractAdapter(final Request request) { + headers = request.getHeaders().asMultiValueMap(); } @Override @@ -22,7 +23,7 @@ public class RatpackRequestExtractAdapter implements TextMap { } @Override - public void put(String key, String value) { + public void put(final String key, final String value) { throw new UnsupportedOperationException("This class should be used only with Tracer.inject()!"); } } diff --git a/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/BulkGetCompletionListener.java b/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/BulkGetCompletionListener.java index 34f89c2b34..178dacaef6 100644 --- a/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/BulkGetCompletionListener.java +++ b/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/BulkGetCompletionListener.java @@ -3,21 +3,21 @@ package datadog.trace.instrumentation.spymemcached; import io.opentracing.Span; import io.opentracing.Tracer; import java.util.concurrent.ExecutionException; -import net.spy.memcached.internal.*; +import net.spy.memcached.internal.BulkGetFuture; public class BulkGetCompletionListener extends CompletionListener> implements net.spy.memcached.internal.BulkGetCompletionListener { - public BulkGetCompletionListener(Tracer tracer, String methodName) { + public BulkGetCompletionListener(final Tracer tracer, final String methodName) { super(tracer, methodName, true); } @Override - public void onComplete(BulkGetFuture future) { + public void onComplete(final BulkGetFuture future) { closeAsyncSpan(future); } @Override - protected void processResult(Span span, BulkGetFuture future) + protected void processResult(final Span span, final BulkGetFuture future) throws ExecutionException, InterruptedException { /* Note: for now we do not have an affective way of representing results of bulk operations, diff --git a/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/MemcachedClientInstrumentation.java b/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/MemcachedClientInstrumentation.java index 2fac128f7d..6737bbb4e0 100644 --- a/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/MemcachedClientInstrumentation.java +++ b/dd-java-agent/instrumentation/spymemcached-2.12/src/main/java/datadog/trace/instrumentation/spymemcached/MemcachedClientInstrumentation.java @@ -1,7 +1,11 @@ package datadog.trace.instrumentation.spymemcached; import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasClassWithMethod; -import static net.bytebuddy.matcher.ElementMatchers.*; +import static net.bytebuddy.matcher.ElementMatchers.isMethod; +import static net.bytebuddy.matcher.ElementMatchers.isPublic; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.not; +import static net.bytebuddy.matcher.ElementMatchers.returns; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; @@ -55,7 +59,7 @@ public final class MemcachedClientInstrumentation extends Instrumenter.Default { @Override public Map transformers() { - Map transformers = new HashMap<>(); + final Map transformers = new HashMap<>(); transformers.put( isMethod() .and(isPublic()) @@ -96,7 +100,7 @@ public final class MemcachedClientInstrumentation extends Instrumenter.Default { @Advice.Origin final Method method, @Advice.Return final OperationFuture future) { if (shouldInjectListener && future != null) { - OperationCompletionListener listener = + final OperationCompletionListener listener = new OperationCompletionListener(GlobalTracer.get(), method.getName()); future.addListener(listener); CallDepthThreadLocalMap.reset(MemcachedClient.class); @@ -117,7 +121,7 @@ public final class MemcachedClientInstrumentation extends Instrumenter.Default { @Advice.Origin final Method method, @Advice.Return final GetFuture future) { if (shouldInjectListener && future != null) { - GetCompletionListener listener = + final GetCompletionListener listener = new GetCompletionListener(GlobalTracer.get(), method.getName()); future.addListener(listener); CallDepthThreadLocalMap.reset(MemcachedClient.class); @@ -138,7 +142,7 @@ public final class MemcachedClientInstrumentation extends Instrumenter.Default { @Advice.Origin final Method method, @Advice.Return final BulkFuture future) { if (shouldInjectListener && future != null) { - BulkGetCompletionListener listener = + final BulkGetCompletionListener listener = new BulkGetCompletionListener(GlobalTracer.get(), method.getName()); future.addListener(listener); CallDepthThreadLocalMap.reset(MemcachedClient.class); diff --git a/dd-java-agent/src/main/java/datadog/trace/agent/TracingAgent.java b/dd-java-agent/src/main/java/datadog/trace/agent/TracingAgent.java index a309c2eea2..a7d938a4df 100644 --- a/dd-java-agent/src/main/java/datadog/trace/agent/TracingAgent.java +++ b/dd-java-agent/src/main/java/datadog/trace/agent/TracingAgent.java @@ -16,7 +16,12 @@ */ package datadog.trace.agent; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; import java.lang.instrument.Instrumentation; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; @@ -91,8 +96,8 @@ public class TracingAgent { * @param toolingJar jar to use for the classpath of the datadog classloader * @return Datadog Classloader */ - private static ClassLoader createDatadogClassLoader(File bootstrapJar, File toolingJar) - throws Exception { + private static ClassLoader createDatadogClassLoader( + final File bootstrapJar, final File toolingJar) throws Exception { final ClassLoader agentParent; final String javaVersion = System.getProperty("java.version"); if (javaVersion.startsWith("1.7") || javaVersion.startsWith("1.8")) { @@ -101,9 +106,9 @@ public class TracingAgent { // platform classloader is parent of system in java 9+ agentParent = getPlatformClassLoader(); } - Class loaderClass = + final Class loaderClass = ClassLoader.getSystemClassLoader().loadClass("datadog.trace.bootstrap.DatadogClassLoader"); - Constructor constructor = + final Constructor constructor = loaderClass.getDeclaredConstructor(URL.class, URL.class, ClassLoader.class); return (ClassLoader) constructor.newInstance( @@ -111,8 +116,8 @@ public class TracingAgent { } /** Extract sourcePath out of loader to a temporary file named destName. */ - private static File extractToTmpFile(ClassLoader loader, String sourcePath, String destName) - throws Exception { + private static File extractToTmpFile( + final ClassLoader loader, final String sourcePath, final String destName) throws Exception { final String destPrefix; final String destSuffix; { @@ -171,7 +176,7 @@ public class TracingAgent { public static void main(final String... args) { try { System.out.println(getAgentVersion()); - } catch (Exception e) { + } catch (final Exception e) { System.out.println("Failed to parse agent version"); e.printStackTrace(); } diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/DDSpanContext.java b/dd-trace-ot/src/main/java/datadog/opentracing/DDSpanContext.java index 45e5f4edbf..afca7c93db 100644 --- a/dd-trace-ot/src/main/java/datadog/opentracing/DDSpanContext.java +++ b/dd-trace-ot/src/main/java/datadog/opentracing/DDSpanContext.java @@ -4,7 +4,10 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import datadog.opentracing.decorators.AbstractDecorator; import datadog.trace.api.DDTags; import datadog.trace.api.sampling.PrioritySampling; -import java.util.*; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import lombok.extern.slf4j.Slf4j; @@ -115,15 +118,15 @@ public class DDSpanContext implements io.opentracing.SpanContext { } public String getTraceId() { - return this.traceId; + return traceId; } public String getParentId() { - return this.parentId; + return parentId; } public String getSpanId() { - return this.spanId; + return spanId; } public String getServiceName() { @@ -135,9 +138,7 @@ public class DDSpanContext implements io.opentracing.SpanContext { } public String getResourceName() { - return this.resourceName == null || this.resourceName.isEmpty() - ? this.operationName - : this.resourceName; + return resourceName == null || resourceName.isEmpty() ? operationName : resourceName; } public void setResourceName(final String resourceName) { @@ -170,7 +171,7 @@ public class DDSpanContext implements io.opentracing.SpanContext { public void setSamplingPriority(final int newPriority) { if (trace != null) { - DDSpan rootSpan = trace.getRootSpan(); + final DDSpan rootSpan = trace.getRootSpan(); if (null != rootSpan && rootSpan.context() != this) { rootSpan.context().setSamplingPriority(newPriority); return; @@ -197,7 +198,7 @@ public class DDSpanContext implements io.opentracing.SpanContext { /** @return the sampling priority of this span's trace, or null if no priority has been set */ public int getSamplingPriority() { if (trace != null) { - DDSpan rootSpan = trace.getRootSpan(); + final DDSpan rootSpan = trace.getRootSpan(); if (null != rootSpan && rootSpan.context() != this) { return rootSpan.context().getSamplingPriority(); } @@ -217,7 +218,7 @@ public class DDSpanContext implements io.opentracing.SpanContext { */ public boolean lockSamplingPriority() { if (trace != null) { - DDSpan rootSpan = trace.getRootSpan(); + final DDSpan rootSpan = trace.getRootSpan(); if (null != rootSpan && rootSpan.context() != this) { return rootSpan.context().lockSamplingPriority(); } @@ -236,11 +237,11 @@ public class DDSpanContext implements io.opentracing.SpanContext { } public void setBaggageItem(final String key, final String value) { - this.baggageItems.put(key, value); + baggageItems.put(key, value); } public String getBaggageItem(final String key) { - return this.baggageItems.get(key); + return baggageItems.get(key); } public Map getBaggageItems() { @@ -252,17 +253,17 @@ public class DDSpanContext implements io.opentracing.SpanContext { */ @Override public Iterable> baggageItems() { - return this.baggageItems.entrySet(); + return baggageItems.entrySet(); } @JsonIgnore public PendingTrace getTrace() { - return this.trace; + return trace; } @JsonIgnore public DDTracer getTracer() { - return this.tracer; + return tracer; } public Map getMetrics() { @@ -270,7 +271,7 @@ public class DDSpanContext implements io.opentracing.SpanContext { return metrics == null ? EMPTY_METRICS : metrics; } - public void setMetric(String key, Number value) { + public void setMetric(final String key, final Number value) { if (metrics.get() == null) { metrics.compareAndSet(null, new ConcurrentHashMap()); } @@ -306,7 +307,7 @@ public class DDSpanContext implements io.opentracing.SpanContext { } if (addTag) { - this.tags.put(tag, value); + tags.put(tag, value); } }