diff --git a/.github/renovate.json5 b/.github/renovate.json5 index baa6ea38b31..456a26b22a2 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -41,6 +41,7 @@ // fails on them, which blocks unrelated patch updates matchDepNames: [ 'org.jetbrains.kotlin.jvm', + 'org.jetbrains.kotlin:kotlin-gradle-plugin', ], schedule: [ '* 0-7 * * 2', // weekly, before 8am on Tuesday diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index c9e71908822..9cce39742ca 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -33,7 +33,7 @@ repositories { } dependencies { - implementation("biz.aQute.bnd:biz.aQute.bnd.gradle:7.2.3") + implementation("biz.aQute.bnd:biz.aQute.bnd.gradle:7.3.0") implementation(enforcedPlatform("com.squareup.wire:wire-bom:6.4.0")) implementation("com.google.auto.value:auto-value-annotations:1.11.1") // When updating, update above in plugins too @@ -47,7 +47,7 @@ dependencies { implementation("me.champeau.gradle:japicmp-gradle-plugin:0.4.6") implementation("me.champeau.jmh:jmh-gradle-plugin:0.7.3") implementation("net.ltgt.gradle:gradle-errorprone-plugin:5.1.0") - implementation("net.ltgt.gradle:gradle-nullaway-plugin:3.0.0") + implementation("net.ltgt.gradle:gradle-nullaway-plugin:3.1.0") implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.21") implementation("org.sonatype.gradle.plugins:scan-gradle-plugin:3.1.5") implementation("ru.vyarus:gradle-animalsniffer-plugin:2.0.1") diff --git a/buildSrc/src/main/kotlin/otel.jacoco-conventions.gradle.kts b/buildSrc/src/main/kotlin/otel.jacoco-conventions.gradle.kts index 2d73cb1c533..e9a5bc2432a 100644 --- a/buildSrc/src/main/kotlin/otel.jacoco-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/otel.jacoco-conventions.gradle.kts @@ -5,7 +5,7 @@ plugins { } jacoco { - toolVersion = "0.8.14" + toolVersion = "0.8.15" } // https://docs.gradle.org/current/samples/sample_jvm_multi_project_with_code_coverage.html diff --git a/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts index 105f2775057..c98953d9a15 100644 --- a/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts @@ -44,7 +44,7 @@ java { checkstyle { configDirectory.set(file("$rootDir/buildscripts/")) - toolVersion = "13.4.2" + toolVersion = "13.5.0" isIgnoreFailures = false configProperties["rootDir"] = rootDir } diff --git a/context/src/grpcInOtelTest/java/io/grpc/override/ContextStorageOverride.java b/context/src/grpcInOtelTest/java/io/grpc/override/ContextStorageOverride.java index b30df462eb9..c3c83f32f39 100644 --- a/context/src/grpcInOtelTest/java/io/grpc/override/ContextStorageOverride.java +++ b/context/src/grpcInOtelTest/java/io/grpc/override/ContextStorageOverride.java @@ -19,7 +19,7 @@ public class ContextStorageOverride extends Context.Storage { private static final ContextKey GRPC_CONTEXT = ContextKey.named("grpc-context"); private static final Context.Key OTEL_SCOPE = Context.key("otel-scope"); - @SuppressWarnings("MustBeClosedChecker") + @SuppressWarnings({"MustBeClosedChecker", "ReferenceEquality"}) @Override public Context doAttach(Context toAttach) { io.opentelemetry.context.Context otelContext = io.opentelemetry.context.Context.current(); @@ -39,6 +39,7 @@ public Context doAttach(Context toAttach) { } @Override + @SuppressWarnings("ReferenceEquality") public void detach(Context toDetach, Context toRestore) { if (current() != toDetach) { // Log a severe message instead of throwing an exception as the context to attach is assumed diff --git a/context/src/main/java/io/opentelemetry/context/ArrayBasedContext.java b/context/src/main/java/io/opentelemetry/context/ArrayBasedContext.java index ba3f22559eb..53f261caedb 100644 --- a/context/src/main/java/io/opentelemetry/context/ArrayBasedContext.java +++ b/context/src/main/java/io/opentelemetry/context/ArrayBasedContext.java @@ -53,6 +53,7 @@ private ArrayBasedContext(Object[] entries) { @Override @Nullable + @SuppressWarnings("ReferenceEquality") public V get(ContextKey key) { for (int i = 0; i < entries.length; i += 2) { if (entries[i] == key) { @@ -65,6 +66,7 @@ public V get(ContextKey key) { } @Override + @SuppressWarnings("ReferenceEquality") public Context with(ContextKey key, V value) { for (int i = 0; i < entries.length; i += 2) { if (entries[i] == key) { diff --git a/context/src/main/java/io/opentelemetry/context/ThreadLocalContextStorage.java b/context/src/main/java/io/opentelemetry/context/ThreadLocalContextStorage.java index 917eed2e088..784f6ba6eaa 100644 --- a/context/src/main/java/io/opentelemetry/context/ThreadLocalContextStorage.java +++ b/context/src/main/java/io/opentelemetry/context/ThreadLocalContextStorage.java @@ -17,6 +17,7 @@ enum ThreadLocalContextStorage implements ContextStorage { private static final ThreadLocal THREAD_LOCAL_STORAGE = new ThreadLocal<>(); @Override + @SuppressWarnings("ReferenceEquality") public Scope attach(Context toAttach) { if (toAttach == null) { // Null context not allowed so ignore it. @@ -44,6 +45,7 @@ private ScopeImpl(@Nullable Context beforeAttach, Context toAttach) { } @Override + @SuppressWarnings("ReferenceEquality") public void close() { if (!closed && current() == toAttach) { closed = true; diff --git a/context/src/otelAsBraveTest/java/io/opentelemetry/context/BraveContextStorageProvider.java b/context/src/otelAsBraveTest/java/io/opentelemetry/context/BraveContextStorageProvider.java index 416176aa56d..7bc42667374 100644 --- a/context/src/otelAsBraveTest/java/io/opentelemetry/context/BraveContextStorageProvider.java +++ b/context/src/otelAsBraveTest/java/io/opentelemetry/context/BraveContextStorageProvider.java @@ -63,6 +63,7 @@ private static class BraveContextValues { this.values = values; } + @SuppressWarnings("ReferenceEquality") Object getValue(Object key) { for (int i = 0; i < values.length; i += 2) { if (values[i] == key) { @@ -72,6 +73,7 @@ Object getValue(Object key) { return null; } + @SuppressWarnings("ReferenceEquality") BraveContextValues with(Object key, Object value) { Object[] copy; for (int i = 0; i < values.length; i += 2) { diff --git a/context/src/otelInBraveTest/java/io/opentelemetry/context/BraveContextStorageProvider.java b/context/src/otelInBraveTest/java/io/opentelemetry/context/BraveContextStorageProvider.java index e138c6a714d..ed1f5a7bf9a 100644 --- a/context/src/otelInBraveTest/java/io/opentelemetry/context/BraveContextStorageProvider.java +++ b/context/src/otelInBraveTest/java/io/opentelemetry/context/BraveContextStorageProvider.java @@ -74,6 +74,7 @@ static final class BraveContextWrapper implements Context { this.delegate = delegate; } + @SuppressWarnings("ReferenceEquality") TraceContext toBraveContext() { if (fromBraveContext(baseBraveContext) == delegate) { return baseBraveContext; diff --git a/context/src/otelInGrpcTest/java/io/opentelemetry/context/GrpcContextStorageProvider.java b/context/src/otelInGrpcTest/java/io/opentelemetry/context/GrpcContextStorageProvider.java index 828b90fb391..1fbfbb24c6e 100644 --- a/context/src/otelInGrpcTest/java/io/opentelemetry/context/GrpcContextStorageProvider.java +++ b/context/src/otelInGrpcTest/java/io/opentelemetry/context/GrpcContextStorageProvider.java @@ -18,6 +18,7 @@ private enum GrpcContextStorage implements ContextStorage { INSTANCE; @Override + @SuppressWarnings("ReferenceEquality") public Scope attach(Context toAttach) { io.grpc.Context grpcContext = io.grpc.Context.current(); Context current = OTEL_CONTEXT.get(grpcContext); @@ -71,6 +72,7 @@ private static GrpcContextWrapper wrapperFromGrpc(io.grpc.Context grpcContext) { return new GrpcContextWrapper(grpcContext, OTEL_CONTEXT.get(grpcContext)); } + @SuppressWarnings("ReferenceEquality") private io.grpc.Context toGrpcContext() { if (OTEL_CONTEXT.get(baseGrpcContext) == context) { // No changes to the wrapper diff --git a/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelPrivateConstructorForUtilityClass.java b/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelPrivateConstructorForUtilityClass.java index 08b538588e5..0f6a67a1798 100644 --- a/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelPrivateConstructorForUtilityClass.java +++ b/custom-checks/src/main/java/io/opentelemetry/gradle/customchecks/OtelPrivateConstructorForUtilityClass.java @@ -32,7 +32,7 @@ public class OtelPrivateConstructorForUtilityClass extends BugChecker @Override public Description matchClass(ClassTree tree, VisitorState state) { Description description = delegate.matchClass(tree, state); - if (description == NO_MATCH) { + if (description.equals(NO_MATCH)) { return description; } return describeMatch(tree); diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index 374f7e9e806..e518dd7355e 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -9,17 +9,17 @@ rootProject.extra["versions"] = dependencyVersions val autoValueVersion = "1.11.1" -val errorProneVersion = "2.49.0" +val errorProneVersion = "2.50.0" val jmhVersion = "1.37" // Mockito 5.x.x requires Java 11 https://github.com/mockito/mockito/releases/tag/v5.0.0 val mockitoVersion = "4.11.0" val slf4jVersion = "2.0.18" val opencensusVersion = "0.31.1" val prometheusServerVersion = "1.5.1" -val armeriaVersion = "1.39.0" +val armeriaVersion = "1.39.1" val junitVersion = "5.14.4" val junitPlatformVersion = "1.14.4" -val okhttpVersion = "5.3.2" +val okhttpVersion = "5.4.0" val DEPENDENCY_BOMS = listOf( // for some reason boms show up as runtime dependencies in license and vulnerability scans @@ -27,13 +27,13 @@ val DEPENDENCY_BOMS = listOf( // (which is EPL licensed) or armeria bom (which is Apache licensed but is getting flagged // by FOSSA for containing EPL-licensed) - "com.fasterxml.jackson:jackson-bom:2.21.3", + "com.fasterxml.jackson:jackson-bom:2.22.0", "com.google.guava:guava-bom:33.6.0-jre", "com.google.protobuf:protobuf-bom:4.35.0", "com.squareup.okhttp3:okhttp-bom:$okhttpVersion", "com.squareup.okio:okio-bom:3.17.0", // applies to transitive dependencies of okhttp - "io.grpc:grpc-bom:1.81.0", - "io.netty:netty-bom:4.2.14.Final", + "io.grpc:grpc-bom:1.82.0", + "io.netty:netty-bom:4.2.15.Final", "io.zipkin.brave:brave-bom:6.3.1", "io.zipkin.reporter2:zipkin-reporter-bom:3.5.3", "org.assertj:assertj-bom:3.27.7", @@ -74,13 +74,13 @@ val DEPENDENCIES = listOf( "io.prometheus:prometheus-metrics-exposition-formats-no-protobuf:${prometheusServerVersion}", "javax.annotation:javax.annotation-api:1.3.2", "com.github.stefanbirkner:system-rules:1.19.0", - "com.google.api.grpc:proto-google-common-protos:2.71.0", + "com.google.api.grpc:proto-google-common-protos:2.72.0", "com.google.code.findbugs:jsr305:3.0.2", "com.google.guava:guava-beta-checker:1.0", "com.sun.net.httpserver:http:20070405", "com.squareup.okhttp3:okhttp:$okhttpVersion", "com.tngtech.archunit:archunit-junit5:1.4.2", - "com.uber.nullaway:nullaway:0.13.4", + "com.uber.nullaway:nullaway:0.13.6", "edu.berkeley.cs.jqf:jqf-fuzz:1.7", // jqf-fuzz version 1.8+ requires Java 11+ "eu.rekawek.toxiproxy:toxiproxy-java:2.1.11", "io.github.crac:org-crac:0.1.3", diff --git a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/writer/StreamJsonWriter.java b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/writer/StreamJsonWriter.java index 6c45ee0d696..a3e4e262a7e 100644 --- a/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/writer/StreamJsonWriter.java +++ b/exporters/logging-otlp/src/main/java/io/opentelemetry/exporter/logging/otlp/internal/writer/StreamJsonWriter.java @@ -60,7 +60,7 @@ public CompletableResultCode flush() { } } - @SuppressWarnings("SystemOut") + @SuppressWarnings({"SystemOut", "ReferenceEquality"}) @Override public CompletableResultCode close() { if (outputStream == System.out || outputStream == System.err) { @@ -81,7 +81,7 @@ public String toString() { return "StreamJsonWriter{" + "outputStream=" + getName(outputStream) + '}'; } - @SuppressWarnings("SystemOut") + @SuppressWarnings({"SystemOut", "ReferenceEquality"}) private static String getName(OutputStream outputStream) { if (outputStream == System.out) { return "stdout"; diff --git a/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/ExemplarMarshaler.java b/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/ExemplarMarshaler.java index 44bab9e6e63..44ad6fb5bc1 100644 --- a/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/ExemplarMarshaler.java +++ b/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/ExemplarMarshaler.java @@ -66,6 +66,7 @@ private ExemplarMarshaler( } @Override + @SuppressWarnings("ReferenceEquality") public void writeTo(Serializer output) throws IOException { output.serializeFixed64(Exemplar.TIME_UNIX_NANO, timeUnixNano); if (valueField == Exemplar.AS_INT) { @@ -80,6 +81,7 @@ public void writeTo(Serializer output) throws IOException { output.serializeRepeatedMessage(Exemplar.FILTERED_ATTRIBUTES, filteredAttributeMarshalers); } + @SuppressWarnings("ReferenceEquality") private static int calculateSize( long timeUnixNano, ProtoFieldInfo valueField, diff --git a/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/ExemplarStatelessMarshaler.java b/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/ExemplarStatelessMarshaler.java index 70259467b37..356b917702f 100644 --- a/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/ExemplarStatelessMarshaler.java +++ b/exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/ExemplarStatelessMarshaler.java @@ -28,6 +28,7 @@ final class ExemplarStatelessMarshaler implements StatelessMarshaler profileList) { // Verify all profiles in batch have identical dictionary ProfilesDictionaryData profilesDictionaryData = null; diff --git a/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/CollectorIntegrationTest.java b/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/CollectorIntegrationTest.java index 64f03715087..96da139d9a7 100644 --- a/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/CollectorIntegrationTest.java +++ b/exporters/prometheus/src/test/java/io/opentelemetry/exporter/prometheus/CollectorIntegrationTest.java @@ -60,7 +60,7 @@ class CollectorIntegrationTest { private static final String COLLECTOR_IMAGE = - "otel/opentelemetry-collector-contrib:0.153.0@sha256:93aad750175cbf1a973ae1c5886c3371f4d800f61be25cdd26870b8441ffe9fa"; + "otel/opentelemetry-collector-contrib:0.154.0@sha256:b3079f45e19bdb7326bf49cdddce6cf60dfd865138db39f2733ea48ab17bc4cb"; private static final Integer COLLECTOR_HEALTH_CHECK_PORT = 13133; diff --git a/extensions/kotlin/build.gradle.kts b/extensions/kotlin/build.gradle.kts index 5d49535a159..5ecd2e8e299 100644 --- a/extensions/kotlin/build.gradle.kts +++ b/extensions/kotlin/build.gradle.kts @@ -50,7 +50,7 @@ tasks { withType(KotlinJvmCompile::class) { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) - apiVersion.set(KotlinVersion.KOTLIN_1_9) + apiVersion.set(KotlinVersion.KOTLIN_2_2) } } diff --git a/integration-tests/otlp/src/main/java/io/opentelemetry/integrationtest/OtlpExporterIntegrationTest.java b/integration-tests/otlp/src/main/java/io/opentelemetry/integrationtest/OtlpExporterIntegrationTest.java index bfb8441a88f..e8ca7ec0124 100644 --- a/integration-tests/otlp/src/main/java/io/opentelemetry/integrationtest/OtlpExporterIntegrationTest.java +++ b/integration-tests/otlp/src/main/java/io/opentelemetry/integrationtest/OtlpExporterIntegrationTest.java @@ -114,7 +114,7 @@ abstract class OtlpExporterIntegrationTest { private static final AttributeKey SERVICE_NAME = AttributeKey.stringKey("service.name"); private static final String COLLECTOR_IMAGE = - "otel/opentelemetry-collector-contrib:0.153.0@sha256:93aad750175cbf1a973ae1c5886c3371f4d800f61be25cdd26870b8441ffe9fa"; + "otel/opentelemetry-collector-contrib:0.154.0@sha256:b3079f45e19bdb7326bf49cdddce6cf60dfd865138db39f2733ea48ab17bc4cb"; private static final Integer COLLECTOR_OTLP_GRPC_PORT = 4317; private static final Integer COLLECTOR_OTLP_HTTP_PORT = 4318; diff --git a/mise.toml b/mise.toml index ce0e19a8d1f..b8c1d5a162b 100644 --- a/mise.toml +++ b/mise.toml @@ -1,7 +1,7 @@ [tools] # Linters -"aqua:grafana/flint" = "0.22.4" +"aqua:grafana/flint" = "0.22.5" lychee = "0.24.2" [env] diff --git a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java index a9cc5636e90..4188bb0fee7 100644 --- a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java +++ b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java @@ -54,6 +54,7 @@ SpanContextShim extractTextMap(Format format, TextMapExtract carrier) { } // Visible for testing + @SuppressWarnings("ReferenceEquality") TextMapPropagator getPropagator(Format format) { if (format == Format.Builtin.HTTP_HEADERS) { return httpPropagator; diff --git a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/ScopeManagerShim.java b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/ScopeManagerShim.java index 410c662020f..4b69eccc5fb 100644 --- a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/ScopeManagerShim.java +++ b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/ScopeManagerShim.java @@ -20,6 +20,7 @@ final class ScopeManagerShim implements ScopeManager { @Override @Nullable + @SuppressWarnings("ReferenceEquality") public Span activeSpan() { SpanShim spanShim = SpanShim.current(); io.opentelemetry.api.trace.Span span = io.opentelemetry.api.trace.Span.current(); diff --git a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/TracerShim.java b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/TracerShim.java index 8f3ba836328..f275e841855 100644 --- a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/TracerShim.java +++ b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/TracerShim.java @@ -78,6 +78,7 @@ public SpanBuilder buildSpan(String operationName) { } @Override + @SuppressWarnings("ReferenceEquality") public void inject(SpanContext context, Format format, C carrier) { if (context == null) { logger.log(Level.WARNING, "Cannot inject a null span context."); @@ -99,6 +100,7 @@ public void inject(SpanContext context, Format format, C carrier) { @Override @Nullable + @SuppressWarnings("ReferenceEquality") public SpanContext extract(Format format, C carrier) { try { if (format == Format.Builtin.TEXT_MAP diff --git a/perf-harness/src/test/java/io/opentelemetry/perf/OtlpPipelineStressTest.java b/perf-harness/src/test/java/io/opentelemetry/perf/OtlpPipelineStressTest.java index b8dc1c9aa8b..962e3400f5d 100644 --- a/perf-harness/src/test/java/io/opentelemetry/perf/OtlpPipelineStressTest.java +++ b/perf-harness/src/test/java/io/opentelemetry/perf/OtlpPipelineStressTest.java @@ -70,7 +70,7 @@ public class OtlpPipelineStressTest { public static final GenericContainer collectorContainer = new GenericContainer<>( DockerImageName.parse( - "otel/opentelemetry-collector-contrib:0.153.0@sha256:93aad750175cbf1a973ae1c5886c3371f4d800f61be25cdd26870b8441ffe9fa")) + "otel/opentelemetry-collector-contrib:0.154.0@sha256:b3079f45e19bdb7326bf49cdddce6cf60dfd865138db39f2733ea48ab17bc4cb")) .withImagePullPolicy(PullPolicy.alwaysPull()) .withNetwork(network) .withNetworkAliases("otel-collector") diff --git a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/Ordered.java b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/Ordered.java index 9477ebbd104..e2182b08a40 100644 --- a/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/Ordered.java +++ b/sdk-extensions/autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi/Ordered.java @@ -35,7 +35,7 @@ default int order() { static List loadOrderedList( ComponentLoader componentLoader, Class spiClass) { List result = new ArrayList<>(ComponentLoader.loadList(componentLoader, spiClass)); - result.sort(Comparator.comparing(Ordered::order)); + result.sort(Comparator.comparingInt(Ordered::order)); return Collections.unmodifiableList(result); } } diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfiguration.java index b57b98d3c8b..fa8729fcdaf 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LogRecordExporterConfiguration.java @@ -35,6 +35,7 @@ final class LogRecordExporterConfiguration { EXPORTER_ARTIFACT_ID_BY_NAME.put("otlp", "opentelemetry-exporter-otlp"); } + @SuppressWarnings("ReferenceEquality") static Map configureLogRecordExporters( ConfigProperties config, SpiHelper spiHelper, diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LoggerProviderConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LoggerProviderConfiguration.java index d2ee66685a5..c1373166da4 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LoggerProviderConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/LoggerProviderConfiguration.java @@ -34,6 +34,7 @@ final class LoggerProviderConfiguration { private static final List simpleProcessorExporterNames = Arrays.asList("console", "logging"); + @SuppressWarnings("ReferenceEquality") static void configureLoggerProvider( SdkLoggerProviderBuilder loggerProviderBuilder, ConfigProperties config, diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfiguration.java index c2a63569812..a57d5e9fc68 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/MetricExporterConfiguration.java @@ -39,6 +39,7 @@ final class MetricExporterConfiguration { READER_ARTIFACT_ID_BY_NAME.put("prometheus", "opentelemetry-exporter-prometheus"); } + @SuppressWarnings("ReferenceEquality") static MetricReader configureReader( String name, ConfigProperties config, diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfiguration.java index 74e6457125c..1cb0f84181c 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/SpanExporterConfiguration.java @@ -36,6 +36,7 @@ final class SpanExporterConfiguration { } // Visible for testing + @SuppressWarnings("ReferenceEquality") static Map configureSpanExporters( ConfigProperties config, SpiHelper spiHelper, diff --git a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfiguration.java b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfiguration.java index 8a5bde466a2..3ca75b483d3 100644 --- a/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfiguration.java +++ b/sdk-extensions/autoconfigure/src/main/java/io/opentelemetry/sdk/autoconfigure/TracerProviderConfiguration.java @@ -38,6 +38,7 @@ final class TracerProviderConfiguration { private static final List simpleProcessorExporterNames = Arrays.asList("console", "logging"); + @SuppressWarnings("ReferenceEquality") static void configureTracerProvider( SdkTracerProviderBuilder tracerProviderBuilder, ConfigProperties config, diff --git a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigurationBuilder.java b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigurationBuilder.java index e9c762be85b..51904dcfcc9 100644 --- a/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigurationBuilder.java +++ b/sdk-extensions/declarative-config/src/main/java/io/opentelemetry/sdk/autoconfigure/declarativeconfig/DeclarativeConfigurationBuilder.java @@ -87,13 +87,14 @@ static class Customizer { private final Class exporterType; private final BiFunction customizer; - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "ReferenceEquality"}) Customizer( Class exporterType, BiFunction customizer) { this.exporterType = exporterType; this.customizer = (BiFunction) customizer; } + @SuppressWarnings("ReferenceEquality") T maybeCustomize(T exporter, String name, DeclarativeConfigProperties properties) { if (!exporterType.isInstance(exporter)) { return exporter; diff --git a/sdk/all/src/jmh/java/io/opentelemetry/sdk/MetricRecordBenchmark.java b/sdk/all/src/jmh/java/io/opentelemetry/sdk/MetricRecordBenchmark.java index a417fd72b3b..d3e8d50f435 100644 --- a/sdk/all/src/jmh/java/io/opentelemetry/sdk/MetricRecordBenchmark.java +++ b/sdk/all/src/jmh/java/io/opentelemetry/sdk/MetricRecordBenchmark.java @@ -120,7 +120,7 @@ public static class BenchmarkState { boolean exemplars = false; OpenTelemetrySdk openTelemetry; - Instrument instrument; + private Instrument instrument; List measurements; List attributesList; Span span; diff --git a/sdk/common/src/main/java/io/opentelemetry/sdk/resources/Resource.java b/sdk/common/src/main/java/io/opentelemetry/sdk/resources/Resource.java index c406ef87a5e..25003b6ba73 100644 --- a/sdk/common/src/main/java/io/opentelemetry/sdk/resources/Resource.java +++ b/sdk/common/src/main/java/io/opentelemetry/sdk/resources/Resource.java @@ -146,7 +146,7 @@ public T getAttribute(AttributeKey key) { * @return the newly merged {@code Resource}. */ public Resource merge(@Nullable Resource other) { - if (other == null || other == EMPTY) { + if (other == null || other.equals(EMPTY)) { return this; } diff --git a/sdk/metrics/src/jmh/java/io/opentelemetry/sdk/metrics/MetricAdviceBenchmark.java b/sdk/metrics/src/jmh/java/io/opentelemetry/sdk/metrics/MetricAdviceBenchmark.java index 66c1a830607..674e076705b 100644 --- a/sdk/metrics/src/jmh/java/io/opentelemetry/sdk/metrics/MetricAdviceBenchmark.java +++ b/sdk/metrics/src/jmh/java/io/opentelemetry/sdk/metrics/MetricAdviceBenchmark.java @@ -260,7 +260,7 @@ void record(long value) { this.instrument = instrument; } - Instrument instrument() { + private Instrument instrument() { return instrument; } } diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkMeter.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkMeter.java index eca95a84d7e..913be6e7093 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkMeter.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/SdkMeter.java @@ -267,6 +267,7 @@ boolean isMeterEnabled() { } /** Registers new synchronous storage associated with a given instrument. */ + @SuppressWarnings("ReferenceEquality") WriteableMetricStorage registerSynchronousMetricStorage(InstrumentDescriptor instrument) { List registeredStorages = new ArrayList<>(); @@ -299,6 +300,7 @@ WriteableMetricStorage registerSynchronousMetricStorage(InstrumentDescriptor ins } /** Register new asynchronous storage associated with a given instrument. */ + @SuppressWarnings("ReferenceEquality") SdkObservableMeasurement registerObservableMeasurement( InstrumentDescriptor instrumentDescriptor) { List> registeredStorages = new ArrayList<>(); diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/DeltaSynchronousMetricStorage.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/DeltaSynchronousMetricStorage.java index 01bb4ea697f..78403b565d6 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/DeltaSynchronousMetricStorage.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/DeltaSynchronousMetricStorage.java @@ -95,7 +95,7 @@ private DeltaAggregatorHandle acquireHandleForRecord(Attributes attributes, C } @Nullable - DeltaAggregatorHandle tryAcquireHandleForRecord( + private DeltaAggregatorHandle tryAcquireHandleForRecord( AggregatorHolder holder, Attributes attributes, Context context) { Objects.requireNonNull(attributes, "attributes"); attributes = attributesProcessor.process(attributes, context); diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/MetricStorageRegistry.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/MetricStorageRegistry.java index 34bfd577a86..9ebb3538f47 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/MetricStorageRegistry.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/MetricStorageRegistry.java @@ -55,7 +55,7 @@ public Collection getStorages() { * @return the {@code newStorage} if no compatible metric is already registered, otherwise the * previously registered storage. */ - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "ReferenceEquality"}) public I register(I newStorage) { MetricDescriptor descriptor = newStorage.getMetricDescriptor(); I oldOrNewStorage; diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/SynchronousMetricStorage.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/SynchronousMetricStorage.java index 38c9552cbe0..1b2d8e4eb10 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/SynchronousMetricStorage.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/state/SynchronousMetricStorage.java @@ -36,6 +36,7 @@ static SynchronousMetricStorage empty() { * @return The storage, or {@link EmptyMetricStorage#empty()} if the instrument should not be * recorded. */ + @SuppressWarnings("ReferenceEquality") static SynchronousMetricStorage create( RegisteredReader registeredReader, RegisteredView registeredView, diff --git a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/view/AttributesProcessor.java b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/view/AttributesProcessor.java index 6ba0cb8a99f..8b45b23d868 100644 --- a/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/view/AttributesProcessor.java +++ b/sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/internal/view/AttributesProcessor.java @@ -47,6 +47,7 @@ public abstract class AttributesProcessor { public abstract boolean usesContext(); /** Joins this attribute processor with another that operates after this one. */ + @SuppressWarnings("ReferenceEquality") public AttributesProcessor then(AttributesProcessor other) { if (other == NOOP) { return this; diff --git a/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/SynchronousInstrumentStressTest.java b/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/SynchronousInstrumentStressTest.java index dd03d1a7df5..eb3c1133640 100644 --- a/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/SynchronousInstrumentStressTest.java +++ b/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/SynchronousInstrumentStressTest.java @@ -95,7 +95,7 @@ void stressTest( } } - @SuppressWarnings("ThreadPriorityCheck") + @SuppressWarnings({"ThreadPriorityCheck", "ReferenceEquality"}) private void stressTestOnce( AggregationTemporality aggregationTemporality, InstrumentType instrumentType, diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/TracesAssert.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/TracesAssert.java index d4c936fe5b2..df0f6038cf7 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/TracesAssert.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/TracesAssert.java @@ -28,7 +28,7 @@ public final class TracesAssert /** Compare spans by start time, placing parents before their children as a tiebreaker. */ static final Comparator SPAN_DATA_COMPARATOR = - Comparator.comparing(SpanData::getStartEpochNanos) + Comparator.comparingLong(SpanData::getStartEpochNanos) .thenComparing( (span1, span2) -> { SpanContext parent1 = span1.getParentSpanContext(); diff --git a/sdk/trace/src/jmh/java/io/opentelemetry/sdk/trace/ExporterBenchmark.java b/sdk/trace/src/jmh/java/io/opentelemetry/sdk/trace/ExporterBenchmark.java index e8d9b3b90d5..7ff4225894a 100644 --- a/sdk/trace/src/jmh/java/io/opentelemetry/sdk/trace/ExporterBenchmark.java +++ b/sdk/trace/src/jmh/java/io/opentelemetry/sdk/trace/ExporterBenchmark.java @@ -37,7 +37,7 @@ private ExporterBenchmark() {} public abstract static class AbstractProcessorBenchmark { private static final DockerImageName OTLP_COLLECTOR_IMAGE = DockerImageName.parse( - "otel/opentelemetry-collector-contrib:0.153.0@sha256:93aad750175cbf1a973ae1c5886c3371f4d800f61be25cdd26870b8441ffe9fa"); + "otel/opentelemetry-collector-contrib:0.154.0@sha256:b3079f45e19bdb7326bf49cdddce6cf60dfd865138db39f2733ea48ab17bc4cb"); protected static final int OTLP_PORT = 5678; private static final int HEALTH_CHECK_PORT = 13133; protected SdkSpanBuilder sdkSpanBuilder; diff --git a/sdk/trace/src/jmh/java/io/opentelemetry/sdk/trace/SpanPipelineBenchmark.java b/sdk/trace/src/jmh/java/io/opentelemetry/sdk/trace/SpanPipelineBenchmark.java index 3ebeb7b2bd9..08857e546ef 100644 --- a/sdk/trace/src/jmh/java/io/opentelemetry/sdk/trace/SpanPipelineBenchmark.java +++ b/sdk/trace/src/jmh/java/io/opentelemetry/sdk/trace/SpanPipelineBenchmark.java @@ -39,7 +39,7 @@ private SpanPipelineBenchmark() {} public abstract static class AbstractProcessorBenchmark { private static final DockerImageName OTLP_COLLECTOR_IMAGE = DockerImageName.parse( - "otel/opentelemetry-collector-contrib:0.153.0@sha256:93aad750175cbf1a973ae1c5886c3371f4d800f61be25cdd26870b8441ffe9fa"); + "otel/opentelemetry-collector-contrib:0.154.0@sha256:b3079f45e19bdb7326bf49cdddce6cf60dfd865138db39f2733ea48ab17bc4cb"); private static final int EXPOSED_PORT = 5678; private static final int HEALTH_CHECK_PORT = 13133; private Tracer tracer; diff --git a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpan.java b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpan.java index e3381b06a3d..b67ac3d403b 100644 --- a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpan.java +++ b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpan.java @@ -351,6 +351,7 @@ public ReadWriteSpan setAttribute(AttributeKey key, @Nullable T value) { } @GuardedBy("lock") + @SuppressWarnings("ReferenceEquality") private boolean isModifiableByCurrentThread() { return hasEnded == EndState.NOT_ENDED || (hasEnded == EndState.ENDING && Thread.currentThread() == spanEndingThread); diff --git a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpanBuilder.java b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpanBuilder.java index 8a9df5cb2e4..050067db815 100644 --- a/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpanBuilder.java +++ b/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/SdkSpanBuilder.java @@ -178,7 +178,7 @@ public SpanBuilder setStartTimestamp(long startTimestamp, TimeUnit unit) { } @Override - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({"rawtypes", "ReferenceEquality"}) public Span startSpan() { Context parentContext = parent == null ? Context.current() : parent; Span parentSpan = Span.fromContext(parentContext); diff --git a/settings.gradle.kts b/settings.gradle.kts index 158e82a0df6..41fcf3e38b3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -5,7 +5,7 @@ pluginManagement { id("de.undercouch.download") version "5.7.0" id("org.jsonschema2pojo") version "1.3.3" id("io.github.gradle-nexus.publish-plugin") version "2.0.0" - id("org.graalvm.buildtools.native") version "1.1.1" + id("org.graalvm.buildtools.native") version "1.1.2" id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" } }