diff --git a/module/spring-boot-micrometer-tracing/build.gradle b/module/spring-boot-micrometer-tracing/build.gradle index 1c29e3c5a7f..4d07b99375a 100644 --- a/module/spring-boot-micrometer-tracing/build.gradle +++ b/module/spring-boot-micrometer-tracing/build.gradle @@ -66,3 +66,11 @@ dependencies { testRuntimeOnly("ch.qos.logback:logback-classic") testRuntimeOnly("io.grpc:grpc-api") } + +tasks.named("compileTestJava") { + options.nullability.checking = "tests" +} + +tasks.named("compileDockerTestJava") { + options.nullability.checking = "tests" +} diff --git a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/CompositePropagationFactoryTests.java b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/CompositePropagationFactoryTests.java index 76a427bc1f1..92fcd33e8e0 100644 --- a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/CompositePropagationFactoryTests.java +++ b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/CompositePropagationFactoryTests.java @@ -24,6 +24,7 @@ import java.util.Map; import brave.propagation.Propagation; import brave.propagation.TraceContext; import brave.propagation.TraceContextOrSamplingFlags; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -92,7 +93,9 @@ class CompositePropagationFactoryTests { Propagation propagation = factory.get(); Map request = Map.of("a", "a-value", "b", "b-value"); TraceContextOrSamplingFlags context = propagation.extractor(new MapGetter()).extract(request); - assertThat(context.context().extra()).containsExactly("a"); + TraceContext traceContext = context.context(); + assertThat(traceContext).isNotNull(); + assertThat(traceContext.extra()).containsExactly("a"); } @Test @@ -127,7 +130,7 @@ class CompositePropagationFactoryTests { private static final class MapGetter implements Propagation.Getter, String> { @Override - public String get(Map request, String key) { + public @Nullable String get(Map request, String key) { return request.get(key); } diff --git a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/CompositeTextMapPropagatorTests.java b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/CompositeTextMapPropagatorTests.java index 193919322c5..f89bd7e2122 100644 --- a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/CompositeTextMapPropagatorTests.java +++ b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/CompositeTextMapPropagatorTests.java @@ -29,6 +29,7 @@ import io.opentelemetry.context.propagation.TextMapGetter; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.context.propagation.TextMapSetter; import io.opentelemetry.extension.trace.propagation.B3Propagator; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InOrder; @@ -147,7 +148,7 @@ class CompositeTextMapPropagatorTests { } @Override - public String get(Map carrier, String key) { + public @Nullable String get(@Nullable Map carrier, String key) { if (carrier == null) { return null; } @@ -173,12 +174,12 @@ class CompositeTextMapPropagatorTests { } @Override - public void inject(Context context, C carrier, TextMapSetter setter) { + public void inject(Context context, @Nullable C carrier, TextMapSetter setter) { setter.set(carrier, this.field, this.field + "-value"); } @Override - public Context extract(Context context, C carrier, TextMapGetter getter) { + public Context extract(Context context, @Nullable C carrier, TextMapGetter getter) { String value = getter.get(carrier, this.field); if (value != null) { return context.with(this.contextKeyRegistry.get(this.field), value); diff --git a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/LocalBaggageFieldsTests.java b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/LocalBaggageFieldsTests.java index ac442cc60ff..8071e699342 100644 --- a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/LocalBaggageFieldsTests.java +++ b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/LocalBaggageFieldsTests.java @@ -25,6 +25,7 @@ import brave.propagation.Propagation.Factory; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; /** * Tests for {@link LocalBaggageFields}. @@ -52,8 +53,9 @@ class LocalBaggageFieldsTests { private static FactoryBuilder createBuilder() { return BaggagePropagation.newFactoryBuilder(new Factory() { @Override + @SuppressWarnings("unchecked") public Propagation get() { - return null; + return mock(Propagation.class); } }); } diff --git a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/MicrometerTracingAutoConfigurationTests.java b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/MicrometerTracingAutoConfigurationTests.java index 40966034580..b59e8086221 100644 --- a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/MicrometerTracingAutoConfigurationTests.java +++ b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/MicrometerTracingAutoConfigurationTests.java @@ -275,7 +275,8 @@ class MicrometerTracingAutoConfigurationTests { @Bean SpanTagAnnotationHandler spanTagAnnotationHandler() { - return new SpanTagAnnotationHandler((valueResolverClass) -> null, (valueExpressionResolverClass) -> null); + return new SpanTagAnnotationHandler((valueResolverClass) -> mock(ValueResolver.class), + (valueExpressionResolverClass) -> mock(ValueExpressionResolver.class)); } } diff --git a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/prometheus/LazyTracingSpanContextTests.java b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/prometheus/LazyTracingSpanContextTests.java index 1e3eb0c588c..b7a6d7e48eb 100644 --- a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/prometheus/LazyTracingSpanContextTests.java +++ b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/prometheus/LazyTracingSpanContextTests.java @@ -19,6 +19,7 @@ package org.springframework.boot.micrometer.tracing.autoconfigure.prometheus; import io.micrometer.tracing.Span; import io.micrometer.tracing.TraceContext; import io.micrometer.tracing.Tracer; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.springframework.beans.BeansException; @@ -46,7 +47,7 @@ class LazyTracingSpanContextTests { } @Override - public Tracer getObject(Object... args) throws BeansException { + public Tracer getObject(@Nullable Object... args) throws BeansException { return LazyTracingSpanContextTests.this.tracer; } diff --git a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/zipkin/ZipkinConfigurationsBraveConfigurationTests.java b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/zipkin/ZipkinConfigurationsBraveConfigurationTests.java index 2a5429a436b..9ee2fa0673e 100644 --- a/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/zipkin/ZipkinConfigurationsBraveConfigurationTests.java +++ b/module/spring-boot-micrometer-tracing/src/test/java/org/springframework/boot/micrometer/tracing/autoconfigure/zipkin/ZipkinConfigurationsBraveConfigurationTests.java @@ -22,6 +22,7 @@ import brave.Tag; import brave.handler.MutableSpan; import brave.handler.SpanHandler; import brave.propagation.TraceContext; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import zipkin2.reporter.BytesEncoder; import zipkin2.reporter.BytesMessageSender; @@ -186,7 +187,7 @@ class ZipkinConfigurationsBraveConfigurationTests { Tag throwableTag() { return new Tag<>("exception") { @Override - protected String parseValue(Throwable throwable, TraceContext traceContext) { + protected @Nullable String parseValue(Throwable throwable, @Nullable TraceContext traceContext) { return throwable.getMessage(); } };