diff --git a/conventions/src/main/kotlin/otel.errorprone-conventions.gradle.kts b/conventions/src/main/kotlin/otel.errorprone-conventions.gradle.kts index 7fdb82eff8..bb6086c7f3 100644 --- a/conventions/src/main/kotlin/otel.errorprone-conventions.gradle.kts +++ b/conventions/src/main/kotlin/otel.errorprone-conventions.gradle.kts @@ -115,6 +115,10 @@ tasks { // lots of low level APIs use arrays disable("AvoidObjectArrays") + // YodaConditions may improve safety in some cases. The argument of increased + // cognitive load is dubious. + disable("YodaCondition") + if (name.contains("Jmh") || name.contains("Test")) { // Allow underscore in test-type method names disable("MemberName") diff --git a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetClientAttributesExtractor.java b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetClientAttributesExtractor.java index 231dd791d8..31c14f11f0 100644 --- a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetClientAttributesExtractor.java +++ b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetClientAttributesExtractor.java @@ -62,7 +62,7 @@ public final class InternalNetClientAttributesExtractor { } String sockFamily = getter.sockFamily(request, response); - if (sockFamily != null && !sockFamily.equals(SemanticAttributes.NetSockFamilyValues.INET)) { + if (sockFamily != null && !SemanticAttributes.NetSockFamilyValues.INET.equals(sockFamily)) { internalSet(attributes, SemanticAttributes.NET_SOCK_FAMILY, sockFamily); } diff --git a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetServerAttributesExtractor.java b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetServerAttributesExtractor.java index b8c240445b..3b6255c931 100644 --- a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetServerAttributesExtractor.java +++ b/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/internal/InternalNetServerAttributesExtractor.java @@ -73,7 +73,7 @@ public final class InternalNetServerAttributesExtractor { if (setSockFamily) { String sockFamily = getter.sockFamily(request); - if (sockFamily != null && !sockFamily.equals(SemanticAttributes.NetSockFamilyValues.INET)) { + if (sockFamily != null && !SemanticAttributes.NetSockFamilyValues.INET.equals(sockFamily)) { internalSet(attributes, SemanticAttributes.NET_SOCK_FAMILY, sockFamily); } } diff --git a/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/MessagingSpanDecorator.java b/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/MessagingSpanDecorator.java index 4546676b1e..3b04fbee44 100644 --- a/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/MessagingSpanDecorator.java +++ b/instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/decorators/MessagingSpanDecorator.java @@ -44,7 +44,7 @@ class MessagingSpanDecorator extends BaseSpanDecorator { public String getOperationName( Exchange exchange, Endpoint endpoint, CamelDirection camelDirection) { - if (component.equals("mqtt")) { + if ("mqtt".equals(component)) { return stripSchemeAndOptions(endpoint); } return getDestination(exchange, endpoint); diff --git a/instrumentation/hibernate/hibernate-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hibernate/OperationNameUtil.java b/instrumentation/hibernate/hibernate-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hibernate/OperationNameUtil.java index 91873de88c..480e2ce6f7 100644 --- a/instrumentation/hibernate/hibernate-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hibernate/OperationNameUtil.java +++ b/instrumentation/hibernate/hibernate-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hibernate/OperationNameUtil.java @@ -30,7 +30,7 @@ public final class OperationNameUtil { } public static String getSessionMethodOperationName(String methodName) { - if (methodName.equals("fireLock")) { + if ("fireLock".equals(methodName)) { return "Session.lock"; } return "Session." + methodName; diff --git a/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/GetOutputStreamContext.java b/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/GetOutputStreamContext.java index 7f6996f7c9..c6c4042b79 100644 --- a/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/GetOutputStreamContext.java +++ b/instrumentation/http-url-connection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/httpurlconnection/GetOutputStreamContext.java @@ -43,10 +43,11 @@ public class GetOutputStreamContext implements ImplicitContextKeyed { String requestMethod) { GetOutputStreamContext getOutputStreamContext = context.get(KEY); String connectionClassName = connectionClass.getName(); - if (connectionClassName.equals("sun.net.www.protocol.http.HttpURLConnection") - && methodName.equals("getOutputStream") - && requestMethod.equals( - "POST") // To be sure that getOutputStream has transformed GET into POST if + if ("sun.net.www.protocol.http.HttpURLConnection".equals(connectionClassName) + && "getOutputStream".equals(methodName) + && "POST" + .equals( + requestMethod) // To be sure that getOutputStream has transformed GET into POST if // the method raised an exception ) { getOutputStreamContext.outputStreamMethodOfSunConnectionCalled = true; diff --git a/instrumentation/internal/internal-lambda/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/lambda/InnerClassLambdaMetafactoryInstrumentation.java b/instrumentation/internal/internal-lambda/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/lambda/InnerClassLambdaMetafactoryInstrumentation.java index f268e66abf..145d7b8b9f 100644 --- a/instrumentation/internal/internal-lambda/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/lambda/InnerClassLambdaMetafactoryInstrumentation.java +++ b/instrumentation/internal/internal-lambda/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/lambda/InnerClassLambdaMetafactoryInstrumentation.java @@ -82,8 +82,8 @@ public class InnerClassLambdaMetafactoryInstrumentation implements TypeInstrumen // This transformation uses ASM instead of Byte-Buddy advice because advice allows adding // code to the start and end of the method, but here we are modifying a call in the middle of // the method. - if ((name.equals("spinInnerClass") || name.equals("generateInnerClass")) - && descriptor.equals("()Ljava/lang/Class;")) { + if (("spinInnerClass".equals(name) || "generateInnerClass".equals(name)) + && "()Ljava/lang/Class;".equals(descriptor)) { mv = new MethodVisitor(api, mv) { @Override @@ -93,8 +93,8 @@ public class InnerClassLambdaMetafactoryInstrumentation implements TypeInstrumen // if current instruction is a call to ASM ClassWriter.toByteArray() insert call to // our lambda transformer if (opcode == Opcodes.INVOKEVIRTUAL - && name.equals("toByteArray") - && descriptor.equals("()[B")) { + && "toByteArray".equals(name) + && "()[B".equals(descriptor)) { mv.visitVarInsn(Opcodes.ALOAD, 0); mv.visitFieldInsn( Opcodes.GETFIELD, slashClassName, "lambdaClassName", "Ljava/lang/String;"); diff --git a/instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ClassInstrumentation.java b/instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ClassInstrumentation.java index d2cd5394ea..68908317cc 100644 --- a/instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ClassInstrumentation.java +++ b/instrumentation/internal/internal-reflection/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/internal/reflection/ClassInstrumentation.java @@ -70,9 +70,9 @@ public class ClassInstrumentation implements TypeInstrumentation { public MethodVisitor visitMethod( int access, String name, String descriptor, String signature, String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, descriptor, signature, exceptions); - if (name.equals("getInterfaces") - && (descriptor.equals("()[Ljava/lang/Class;") - || descriptor.equals("(Z)[Ljava/lang/Class;"))) { + if ("getInterfaces".equals(name) + && ("()[Ljava/lang/Class;".equals(descriptor) + || "(Z)[Ljava/lang/Class;".equals(descriptor))) { mv = new MethodVisitor(api, mv) { @Override @@ -82,12 +82,12 @@ public class ClassInstrumentation implements TypeInstrumentation { // filter the result of call to getInterfaces0, which is used on hotspot, and // J9VMInternals.getInterfaces which is used on openj9 if (((opcode == Opcodes.INVOKEVIRTUAL || opcode == Opcodes.INVOKESPECIAL) - && name.equals("getInterfaces0") - && descriptor.equals("()[Ljava/lang/Class;")) + && "getInterfaces0".equals(name) + && "()[Ljava/lang/Class;".equals(descriptor)) || (opcode == Opcodes.INVOKESTATIC - && name.equals("getInterfaces") - && owner.equals("java/lang/J9VMInternals") - && descriptor.equals("(Ljava/lang/Class;)[Ljava/lang/Class;"))) { + && "getInterfaces".equals(name) + && "java/lang/J9VMInternals".equals(owner) + && "(Ljava/lang/Class;)[Ljava/lang/Class;".equals(descriptor))) { mv.visitVarInsn(Opcodes.ALOAD, 0); mv.visitMethodInsn( Opcodes.INVOKESTATIC, diff --git a/instrumentation/jaxws/jaxws-2.0-tomee-testing/src/test/java/TomeeArquillianJaxWsTest.java b/instrumentation/jaxws/jaxws-2.0-tomee-testing/src/test/java/TomeeArquillianJaxWsTest.java index 747dcc711e..83037e4ecb 100644 --- a/instrumentation/jaxws/jaxws-2.0-tomee-testing/src/test/java/TomeeArquillianJaxWsTest.java +++ b/instrumentation/jaxws/jaxws-2.0-tomee-testing/src/test/java/TomeeArquillianJaxWsTest.java @@ -7,7 +7,7 @@ public class TomeeArquillianJaxWsTest extends AbstractArquillianJaxWsTest { @Override protected String getServicePath(String service) { - if (service.equals("EjbHelloService")) { + if ("EjbHelloService".equals(service)) { service = "webservices/EjbHelloServiceImpl"; } return service; diff --git a/instrumentation/jaxws/jaxws-2.0-wildfly-testing/src/test/java/WildflyArquillianJaxWsTest.java b/instrumentation/jaxws/jaxws-2.0-wildfly-testing/src/test/java/WildflyArquillianJaxWsTest.java index 11eaa98f12..fc9564097b 100644 --- a/instrumentation/jaxws/jaxws-2.0-wildfly-testing/src/test/java/WildflyArquillianJaxWsTest.java +++ b/instrumentation/jaxws/jaxws-2.0-wildfly-testing/src/test/java/WildflyArquillianJaxWsTest.java @@ -7,7 +7,7 @@ public class WildflyArquillianJaxWsTest extends AbstractArquillianJaxWsTest { @Override protected String getServicePath(String service) { - if (service.equals("EjbHelloService")) { + if ("EjbHelloService".equals(service)) { service = "EjbHelloService/EjbHelloServiceImpl"; } return service; diff --git a/instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/mdc/v1_1/JbossExtLogRecordInstrumentation.java b/instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/mdc/v1_1/JbossExtLogRecordInstrumentation.java index 49d852bdc7..61a9709ab9 100644 --- a/instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/mdc/v1_1/JbossExtLogRecordInstrumentation.java +++ b/instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/mdc/v1_1/JbossExtLogRecordInstrumentation.java @@ -21,7 +21,6 @@ import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; import java.util.Map; -import java.util.Objects; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -58,9 +57,7 @@ public class JbossExtLogRecordInstrumentation implements TypeInstrumentation { @Advice.This ExtLogRecord record, @Advice.Argument(0) String key, @Advice.Return(readOnly = false) String value) { - if (Objects.equals(key, TRACE_ID) - || Objects.equals(key, SPAN_ID) - || Objects.equals(key, TRACE_FLAGS)) { + if (TRACE_ID.equals(key) || SPAN_ID.equals(key) || TRACE_FLAGS.equals(key)) { if (value != null) { // Assume already instrumented event if traceId/spanId/sampled is present. return; diff --git a/instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/main/java/io/opentelemetry/instrumentation/kafkaclients/KafkaTelemetry.java b/instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/main/java/io/opentelemetry/instrumentation/kafkaclients/KafkaTelemetry.java index 4b84e2e6cb..5531d1b145 100644 --- a/instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/main/java/io/opentelemetry/instrumentation/kafkaclients/KafkaTelemetry.java +++ b/instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/main/java/io/opentelemetry/instrumentation/kafkaclients/KafkaTelemetry.java @@ -89,7 +89,7 @@ public final class KafkaTelemetry { (proxy, method, args) -> { // Future send(ProducerRecord record) // Future send(ProducerRecord record, Callback callback) - if (method.getName().equals("send") + if ("send".equals(method.getName()) && method.getParameterCount() >= 1 && method.getParameterTypes()[0] == ProducerRecord.class) { ProducerRecord record = (ProducerRecord) args[0]; @@ -124,7 +124,7 @@ public final class KafkaTelemetry { } // ConsumerRecords poll(long timeout) // ConsumerRecords poll(Duration duration) - if (method.getName().equals("poll") && result instanceof ConsumerRecords) { + if ("poll".equals(method.getName()) && result instanceof ConsumerRecords) { buildAndFinishSpan((ConsumerRecords) result); } return result; diff --git a/instrumentation/log4j/log4j-mdc-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/mdc/v1_2/LoggingEventInstrumentation.java b/instrumentation/log4j/log4j-mdc-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/mdc/v1_2/LoggingEventInstrumentation.java index e3b968ba23..e8b0c425ed 100644 --- a/instrumentation/log4j/log4j-mdc-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/mdc/v1_2/LoggingEventInstrumentation.java +++ b/instrumentation/log4j/log4j-mdc-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/mdc/v1_2/LoggingEventInstrumentation.java @@ -20,7 +20,6 @@ import io.opentelemetry.instrumentation.api.util.VirtualField; import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import java.util.Objects; import net.bytebuddy.asm.Advice; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; @@ -51,9 +50,7 @@ public class LoggingEventInstrumentation implements TypeInstrumentation { @Advice.This LoggingEvent event, @Advice.Argument(0) String key, @Advice.Return(readOnly = false) Object value) { - if (Objects.equals(key, TRACE_ID) - || Objects.equals(key, SPAN_ID) - || Objects.equals(key, TRACE_FLAGS)) { + if (TRACE_ID.equals(key) || SPAN_ID.equals(key) || TRACE_FLAGS.equals(key)) { if (value != null) { // Assume already instrumented event if traceId/spanId/sampled is present. return; diff --git a/instrumentation/netty/netty-4.1/testing/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/AbstractNetty41ClientTest.java b/instrumentation/netty/netty-4.1/testing/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/AbstractNetty41ClientTest.java index 4a63ee928f..7985123b03 100644 --- a/instrumentation/netty/netty-4.1/testing/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/AbstractNetty41ClientTest.java +++ b/instrumentation/netty/netty-4.1/testing/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/AbstractNetty41ClientTest.java @@ -111,7 +111,7 @@ public abstract class AbstractNetty41ClientTest protected Set> httpAttributes(URI uri) { String uriString = uri.toString(); // http://localhost:61/ => unopened port, https://192.0.2.1/ => non routable address - if (uriString.equals("http://localhost:61/") || uriString.equals("https://192.0.2.1/")) { + if ("http://localhost:61/".equals(uriString) || "https://192.0.2.1/".equals(uriString)) { return Collections.emptySet(); } Set> attributes = super.httpAttributes(uri); diff --git a/instrumentation/netty/netty-4.1/testing/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/Netty41ClientExtension.java b/instrumentation/netty/netty-4.1/testing/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/Netty41ClientExtension.java index c95d857e64..43f9fa98d7 100644 --- a/instrumentation/netty/netty-4.1/testing/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/Netty41ClientExtension.java +++ b/instrumentation/netty/netty-4.1/testing/src/main/java/io/opentelemetry/instrumentation/netty/v4_1/Netty41ClientExtension.java @@ -22,7 +22,6 @@ import io.netty.handler.ssl.SslContext; import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.timeout.ReadTimeoutHandler; import java.net.URI; -import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; import java.util.function.Supplier; @@ -101,9 +100,9 @@ public class Netty41ClientExtension implements BeforeAllCallback, AfterAllCallba } public Bootstrap getBootstrap(URI uri) { - if (Objects.equals(uri.getScheme(), "https")) { + if ("https".equals(uri.getScheme())) { return httpsBootstrap; - } else if (Objects.equals(uri.getPath(), "/read-timeout")) { + } else if ("/read-timeout".equals(uri.getPath())) { return readTimeoutBootstrap; } return httpBootstrap; diff --git a/instrumentation/okhttp/okhttp-2.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2Test.java b/instrumentation/okhttp/okhttp-2.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2Test.java index 7c41f9f61e..8b732419af 100644 --- a/instrumentation/okhttp/okhttp-2.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2Test.java +++ b/instrumentation/okhttp/okhttp-2.2/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/OkHttp2Test.java @@ -102,10 +102,9 @@ public class OkHttp2Test extends AbstractHttpClientTest { // flavor is extracted from the response, and those URLs cause exceptions (= null // response) - String uriString = uri.toString(); - if (uriString.equals("http://localhost:61/") - || uriString.equals("https://192.0.2.1/") - || uriString.equals(resolveAddress("/read-timeout").toString())) { + if ("http://localhost:61/".equals(uri.toString()) + || "https://192.0.2.1/".equals(uri.toString()) + || resolveAddress("/read-timeout").toString().equals(uri.toString())) { attributes.remove(SemanticAttributes.HTTP_FLAVOR); } diff --git a/instrumentation/okhttp/okhttp-3.0/testing/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/AbstractOkHttp3Test.java b/instrumentation/okhttp/okhttp-3.0/testing/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/AbstractOkHttp3Test.java index 5c71ee598d..3f81a93fe0 100644 --- a/instrumentation/okhttp/okhttp-3.0/testing/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/AbstractOkHttp3Test.java +++ b/instrumentation/okhttp/okhttp-3.0/testing/src/main/java/io/opentelemetry/instrumentation/okhttp/v3_0/AbstractOkHttp3Test.java @@ -120,8 +120,8 @@ public abstract class AbstractOkHttp3Test extends AbstractHttpClientTest { if (exception.getClass().getName().endsWith("ReactiveException")) { // unopened port or non routable address - if (uri.toString().equals("http://localhost:61/") - || uri.toString().equals("https://192.0.2.1/")) { + if ("http://localhost:61/".equals(uri.toString()) + || "https://192.0.2.1/".equals(uri.toString())) { exception = exception.getCause(); } } @@ -124,8 +124,8 @@ abstract class AbstractReactorNettyHttpClientTest protected Set> getHttpAttributes(URI uri) { // unopened port or non routable address - if (uri.toString().equals("http://localhost:61/") - || uri.toString().equals("https://192.0.2.1/")) { + if ("http://localhost:61/".equals(uri.toString()) + || "https://192.0.2.1/".equals(uri.toString())) { return emptySet(); } diff --git a/instrumentation/resources/library/src/main/java/io/opentelemetry/instrumentation/resources/JarServiceNameDetector.java b/instrumentation/resources/library/src/main/java/io/opentelemetry/instrumentation/resources/JarServiceNameDetector.java index 702f07a50b..d54ba022ae 100644 --- a/instrumentation/resources/library/src/main/java/io/opentelemetry/instrumentation/resources/JarServiceNameDetector.java +++ b/instrumentation/resources/library/src/main/java/io/opentelemetry/instrumentation/resources/JarServiceNameDetector.java @@ -19,7 +19,6 @@ import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Map; -import java.util.Objects; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; @@ -73,15 +72,14 @@ public final class JarServiceNameDetector implements ConditionalResourceProvider Map resourceAttributes = config.getMap("otel.resource.attributes"); return serviceName == null && !resourceAttributes.containsKey(ResourceAttributes.SERVICE_NAME.getKey()) - && Objects.equals( - existing.getAttribute(ResourceAttributes.SERVICE_NAME), "unknown_service:java"); + && "unknown_service:java".equals(existing.getAttribute(ResourceAttributes.SERVICE_NAME)); } @Nullable private Path getJarPathFromProcessHandle() { String[] javaArgs = getProcessHandleArguments.get(); for (int i = 0; i < javaArgs.length; ++i) { - if (javaArgs[i].equals("-jar") && (i < javaArgs.length - 1)) { + if ("-jar".equals(javaArgs[i]) && (i < javaArgs.length - 1)) { return Paths.get(javaArgs[i + 1]); } } diff --git a/instrumentation/resources/library/src/test/java/io/opentelemetry/instrumentation/resources/JarServiceNameDetectorTest.java b/instrumentation/resources/library/src/test/java/io/opentelemetry/instrumentation/resources/JarServiceNameDetectorTest.java index 479940b8ee..f1842dd4d6 100644 --- a/instrumentation/resources/library/src/test/java/io/opentelemetry/instrumentation/resources/JarServiceNameDetectorTest.java +++ b/instrumentation/resources/library/src/test/java/io/opentelemetry/instrumentation/resources/JarServiceNameDetectorTest.java @@ -85,7 +85,7 @@ class JarServiceNameDetectorTest { @ArgumentsSource(SunCommandLineProvider.class) void createResource_sunCommandLine(String commandLine, Path jarPath) { Function getProperty = - key -> key.equals("sun.java.command") ? commandLine : null; + key -> "sun.java.command".equals(key) ? commandLine : null; Predicate fileExists = jarPath::equals; JarServiceNameDetector serviceNameProvider = diff --git a/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java b/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java index 94d3635f00..bacfd1e70d 100644 --- a/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java +++ b/instrumentation/rmi/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rmi/context/client/RmiClientContextInstrumentation.java @@ -69,7 +69,7 @@ public class RmiClientContextInstrumentation implements TypeInstrumentation { (builder, typeDescription, classLoader, javaModule, protectionDomain) -> { if (JavaModule.isSupported() && classLoader == null - && typeDescription.getName().equals("sun.rmi.transport.StreamRemoteCall") + && "sun.rmi.transport.StreamRemoteCall".equals(typeDescription.getName()) && javaModule != null) { Instrumentation instrumentation = InstrumentationHolder.getInstrumentation(); ClassInjector.UsingInstrumentation.redefineModule( diff --git a/instrumentation/servlet/servlet-common/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/servlet/MappingResolver.java b/instrumentation/servlet/servlet-common/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/servlet/MappingResolver.java index 4584e7bfba..aded58a03c 100644 --- a/instrumentation/servlet/servlet-common/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/servlet/MappingResolver.java +++ b/instrumentation/servlet/servlet-common/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/servlet/MappingResolver.java @@ -10,7 +10,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.Objects; import java.util.Set; import javax.annotation.Nullable; @@ -81,7 +80,7 @@ public final class MappingResolver { if (matcher.match(path)) { String mapping = matcher.getMapping(); // for jsp return servlet path - if (Objects.equals(mapping, "/*.jsp") || Objects.equals(mapping, "/*.jspx")) { + if ("/*.jsp".equals(mapping) || "/*.jspx".equals(mapping)) { return servletPath; } return mapping; diff --git a/instrumentation/spring/spring-boot-resources/library/src/main/java/io/opentelemetry/instrumentation/spring/resources/SpringBootServiceNameDetector.java b/instrumentation/spring/spring-boot-resources/library/src/main/java/io/opentelemetry/instrumentation/spring/resources/SpringBootServiceNameDetector.java index da6c68dc81..ba7bd65e6b 100644 --- a/instrumentation/spring/spring-boot-resources/library/src/main/java/io/opentelemetry/instrumentation/spring/resources/SpringBootServiceNameDetector.java +++ b/instrumentation/spring/spring-boot-resources/library/src/main/java/io/opentelemetry/instrumentation/spring/resources/SpringBootServiceNameDetector.java @@ -106,8 +106,7 @@ public class SpringBootServiceNameDetector implements ConditionalResourceProvide Map resourceAttributes = config.getMap("otel.resource.attributes"); return serviceName == null && !resourceAttributes.containsKey(ResourceAttributes.SERVICE_NAME.getKey()) - && Objects.equals( - resource.getAttribute(ResourceAttributes.SERVICE_NAME), "unknown_service:java"); + && "unknown_service:java".equals(resource.getAttribute(ResourceAttributes.SERVICE_NAME)); } @Override diff --git a/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java b/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java index abfcc710e3..3736307145 100644 --- a/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java +++ b/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java @@ -15,7 +15,6 @@ import java.lang.invoke.MethodType; import java.util.IdentityHashMap; import java.util.List; import java.util.Map; -import java.util.Objects; import org.springframework.aop.framework.Advised; import org.springframework.aop.support.AopUtils; import org.springframework.messaging.Message; @@ -243,8 +242,7 @@ final class TracingChannelInterceptor implements ExecutorChannelInterceptor { } try { - String type = (String) channelGetAttributeMh.invoke(messageChannel, "type"); - return Objects.equals(type, "output"); + return "output".equals(channelGetAttributeMh.invoke(messageChannel, "type")); } catch (Throwable throwable) { return false; } diff --git a/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/test/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/TestWebSpringBootApp.java b/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/test/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/TestWebSpringBootApp.java index 730c3ae833..d0175f9d0c 100644 --- a/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/test/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/TestWebSpringBootApp.java +++ b/instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/test/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/TestWebSpringBootApp.java @@ -117,7 +117,7 @@ class TestWebSpringBootApp { return controller( INDEXED_CHILD, () -> { - INDEXED_CHILD.collectSpanAttributes(name -> name.equals("id") ? id : null); + INDEXED_CHILD.collectSpanAttributes(name -> "id".equals(name) ? id : null); return INDEXED_CHILD.getBody(); }); } diff --git a/instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java b/instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java index 67e77abc15..4b46dd63bf 100644 --- a/instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java +++ b/instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java @@ -13,7 +13,6 @@ import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtr import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.util.SpanNames; import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; -import java.util.Objects; public class VaadinSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.vaadin-14.2"; @@ -86,7 +85,7 @@ public class VaadinSingletons { RpcInvocationHandler rpcInvocationHandler = rpcRequest.getRpcInvocationHandler(); String spanName = SpanNames.fromMethod(rpcInvocationHandler.getClass(), rpcRequest.getMethodName()); - if (Objects.equals(rpcInvocationHandler.getRpcType(), "event")) { + if ("event".equals(rpcInvocationHandler.getRpcType())) { String eventType = rpcRequest.getJsonObject().getString("event"); if (eventType != null) { // append event type to make span name more descriptive diff --git a/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java b/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java index b0376c6bad..4831e05476 100644 --- a/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java +++ b/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentClassLoader.java @@ -20,7 +20,6 @@ import java.security.CodeSource; import java.security.Permission; import java.security.cert.Certificate; import java.util.Enumeration; -import java.util.Objects; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.Manifest; @@ -124,7 +123,7 @@ public class AgentClassLoader extends URLClassLoader { private static int getJavaVersion() { String javaSpecVersion = System.getProperty("java.specification.version"); - if (Objects.equals(javaSpecVersion, "1.8")) { + if ("1.8".equals(javaSpecVersion)) { return 8; } return Integer.parseInt(javaSpecVersion); @@ -134,7 +133,7 @@ public class AgentClassLoader extends URLClassLoader { public Class loadClass(String name, boolean resolve) throws ClassNotFoundException { // ContextStorageOverride is meant for library instrumentation we don't want it to apply to our // bundled grpc - if (Objects.equals(name, "io.grpc.override.ContextStorageOverride")) { + if ("io.grpc.override.ContextStorageOverride".equals(name)) { throw new ClassNotFoundException(name); } diff --git a/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/InstrumentedTaskClasses.java b/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/InstrumentedTaskClasses.java index 77d3573bed..2d4210d0cb 100644 --- a/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/InstrumentedTaskClasses.java +++ b/javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/InstrumentedTaskClasses.java @@ -29,7 +29,7 @@ public final class InstrumentedTaskClasses { // to exclude them here too. ClassLoader taskClassLoader = taskClass.getClassLoader(); if (taskClassLoader != null - && taskClassLoader.getClass().getName().equals(AGENT_CLASSLOADER_NAME)) { + && AGENT_CLASSLOADER_NAME.equals(taskClassLoader.getClass().getName())) { return false; } return true; diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentStarterImpl.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentStarterImpl.java index 8b8d403bcc..fabc3900da 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentStarterImpl.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentStarterImpl.java @@ -109,7 +109,7 @@ public class AgentStarterImpl implements AgentStarter { Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) { - if (!className.equals("sun/launcher/LauncherHelper")) { + if (!"sun/launcher/LauncherHelper".equals(className)) { return null; } transformed = true; @@ -121,7 +121,7 @@ public class AgentStarterImpl implements AgentStarter { public MethodVisitor visitMethod( int access, String name, String descriptor, String signature, String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, descriptor, signature, exceptions); - if (name.equals("checkAndLoadMain")) { + if ("checkAndLoadMain".equals(name)) { return new MethodVisitor(api, mv) { @Override public void visitCode() { diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/RemappingUrlStreamHandler.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/RemappingUrlStreamHandler.java index 1f764cf728..dab3681c09 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/RemappingUrlStreamHandler.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/RemappingUrlStreamHandler.java @@ -31,7 +31,7 @@ class RemappingUrlStreamHandler extends URLStreamHandler { @Override protected URLConnection openConnection(URL url) throws IOException { String file = url.getFile(); - if (file.equals("/")) { + if ("/".equals(file)) { // "/" is used as the default url of the jar // This is called by the SecureClassLoader trying to obtain permissions // nullInputStream() is not available until Java 11 diff --git a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/VirtualFieldImplementationsGenerator.java b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/VirtualFieldImplementationsGenerator.java index e322fa6cc8..738d3ef580 100644 --- a/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/VirtualFieldImplementationsGenerator.java +++ b/javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/field/VirtualFieldImplementationsGenerator.java @@ -119,10 +119,10 @@ final class VirtualFieldImplementationsGenerator { @Override public MethodVisitor visitMethod( int access, String name, String descriptor, String signature, String[] exceptions) { - if (name.equals("realGet")) { + if ("realGet".equals(name)) { generateRealGetMethod(name); return null; - } else if (name.equals("realPut")) { + } else if ("realPut".equals(name)) { generateRealPutMethod(name); return null; } else { diff --git a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/AgentCachingPoolStrategy.java b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/AgentCachingPoolStrategy.java index 7407f25f68..574eee9c85 100644 --- a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/AgentCachingPoolStrategy.java +++ b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/AgentCachingPoolStrategy.java @@ -274,7 +274,7 @@ public class AgentCachingPoolStrategy implements AgentBuilder.PoolStrategy { return existingResolution; } - if (className.equals(OBJECT_NAME)) { + if (OBJECT_NAME.equals(className)) { return OBJECT_RESOLUTION; } @@ -283,7 +283,7 @@ public class AgentCachingPoolStrategy implements AgentBuilder.PoolStrategy { @Override public TypePool.Resolution register(String className, TypePool.Resolution resolution) { - if (className.equals(OBJECT_NAME)) { + if (OBJECT_NAME.equals(className)) { return resolution; } diff --git a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/HelperReferenceWrapper.java b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/HelperReferenceWrapper.java index 8b98ccacbe..669416138e 100644 --- a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/HelperReferenceWrapper.java +++ b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/HelperReferenceWrapper.java @@ -230,7 +230,7 @@ interface HelperReferenceWrapper { private boolean isOverrideable(MethodRef method) { return !(method.getFlags().contains(OwnershipFlag.STATIC) || method.getFlags().contains(VisibilityFlag.PRIVATE) - || method.getName().equals(CONSTRUCTOR_INTERNAL_NAME)); + || CONSTRUCTOR_INTERNAL_NAME.equals(method.getName())); } private Method toMethod(MethodRef method) { diff --git a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/ReferenceCollectingClassVisitor.java b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/ReferenceCollectingClassVisitor.java index 32ee9c22ff..0efe16b373 100644 --- a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/ReferenceCollectingClassVisitor.java +++ b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/ReferenceCollectingClassVisitor.java @@ -20,7 +20,6 @@ import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Set; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.FieldVisitor; @@ -571,9 +570,8 @@ final class ReferenceCollectingClassVisitor extends ClassVisitor { Type ownerType = Type.getType("L" + owner + ";"); // remember used context classes if this is an VirtualField.find() call - if (Objects.equals( - ownerType.getClassName(), "io.opentelemetry.instrumentation.api.util.VirtualField") - && Objects.equals(name, "find") + if ("io.opentelemetry.instrumentation.api.util.VirtualField".equals(ownerType.getClassName()) + && "find".equals(name) && methodType.getDescriptor().equals(getVirtualFieldDescriptor)) { // in case of invalid scenario (not using .class ref directly) don't store anything and // clear the last LDC stack diff --git a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/generation/MuzzleCodeGenerator.java b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/generation/MuzzleCodeGenerator.java index 898bdbe8b8..12b18ddf7e 100644 --- a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/generation/MuzzleCodeGenerator.java +++ b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/generation/MuzzleCodeGenerator.java @@ -137,15 +137,15 @@ final class MuzzleCodeGenerator implements AsmVisitorWrapper { @Override public MethodVisitor visitMethod( int access, String name, String descriptor, String signature, String[] exceptions) { - if (name.equals(MUZZLE_REFERENCES_METHOD_NAME)) { + if (MUZZLE_REFERENCES_METHOD_NAME.equals(name)) { generateReferencesMethod = false; logMethodAlreadyExistsMessage(MUZZLE_REFERENCES_METHOD_NAME); } - if (name.equals(MUZZLE_HELPER_CLASSES_METHOD_NAME)) { + if (MUZZLE_HELPER_CLASSES_METHOD_NAME.equals(name)) { generateHelperClassNamesMethod = false; logMethodAlreadyExistsMessage(MUZZLE_HELPER_CLASSES_METHOD_NAME); } - if (name.equals(MUZZLE_VIRTUAL_FIELDS_METHOD_NAME)) { + if (MUZZLE_VIRTUAL_FIELDS_METHOD_NAME.equals(name)) { generateVirtualFieldsMethod = false; logMethodAlreadyExistsMessage(MUZZLE_VIRTUAL_FIELDS_METHOD_NAME); } diff --git a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/references/MethodRef.java b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/references/MethodRef.java index 0b6059303c..aafdc74eb1 100644 --- a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/references/MethodRef.java +++ b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/muzzle/references/MethodRef.java @@ -56,7 +56,7 @@ public final class MethodRef { } public boolean isConstructor() { - return name.equals(""); + return "".equals(name); } MethodRef merge(MethodRef anotherMethod) { diff --git a/smoke-tests/src/test/java/io/opentelemetry/smoketest/TestContainerManager.java b/smoke-tests/src/test/java/io/opentelemetry/smoketest/TestContainerManager.java index ba92d0d635..895e495e99 100644 --- a/smoke-tests/src/test/java/io/opentelemetry/smoketest/TestContainerManager.java +++ b/smoke-tests/src/test/java/io/opentelemetry/smoketest/TestContainerManager.java @@ -7,7 +7,6 @@ package io.opentelemetry.smoketest; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.function.Consumer; import org.testcontainers.containers.output.OutputFrame; @@ -32,7 +31,7 @@ public interface TestContainerManager { void stopTarget(); static boolean useWindowsContainers() { - return !Objects.equals(System.getenv("USE_LINUX_CONTAINERS"), "1") + return !"1".equals(System.getenv("USE_LINUX_CONTAINERS")) && System.getProperty("os.name").toLowerCase().contains("windows"); } } diff --git a/testing-common/src/main/java/io/opentelemetry/instrumentation/testing/junit/http/AbstractHttpClientTest.java b/testing-common/src/main/java/io/opentelemetry/instrumentation/testing/junit/http/AbstractHttpClientTest.java index 696e26b563..bb1a85dbda 100644 --- a/testing-common/src/main/java/io/opentelemetry/instrumentation/testing/junit/http/AbstractHttpClientTest.java +++ b/testing-common/src/main/java/io/opentelemetry/instrumentation/testing/junit/http/AbstractHttpClientTest.java @@ -30,7 +30,6 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; @@ -589,7 +588,7 @@ public abstract class AbstractHttpClientTest { span.hasName("callback") .hasKind(SpanKind.INTERNAL) .hasParent(trace.getSpan(0))); - boolean jdk8 = Objects.equals(System.getProperty("java.specification.version"), "1.8"); + boolean jdk8 = "1.8".equals(System.getProperty("java.specification.version")); if (jdk8) { // on some netty based http clients order of `CONNECT` and `callback` spans isn't // guaranteed when running on jdk8 @@ -968,9 +967,7 @@ public abstract class AbstractHttpClientTest { assertThat(attrs) .containsEntry( SemanticAttributes.NET_SOCK_PEER_PORT, - Objects.equals(uri.getScheme(), "https") - ? server.httpsPort() - : server.httpPort()); + "https".equals(uri.getScheme()) ? server.httpsPort() : server.httpPort()); } }