diff --git a/api/src/main/java/io/opentelemetry/api/metrics/DefaultMeterProvider.java b/api/src/main/java/io/opentelemetry/api/metrics/DefaultMeterProvider.java index 4516c098dc5..34b65ce2083 100644 --- a/api/src/main/java/io/opentelemetry/api/metrics/DefaultMeterProvider.java +++ b/api/src/main/java/io/opentelemetry/api/metrics/DefaultMeterProvider.java @@ -6,6 +6,7 @@ package io.opentelemetry.api.metrics; import javax.annotation.concurrent.ThreadSafe; +import java.util.Objects; @ThreadSafe final class DefaultMeterProvider implements MeterProvider { @@ -23,6 +24,7 @@ public Meter get(String instrumentationName) { @Override public Meter get(String instrumentationName, String instrumentationVersion) { + Objects.requireNonNull(instrumentationName); return Meter.getDefault(); } diff --git a/api/src/main/java/io/opentelemetry/api/trace/DefaultTracerProvider.java b/api/src/main/java/io/opentelemetry/api/trace/DefaultTracerProvider.java index 7cb4219efc8..4df177a382e 100644 --- a/api/src/main/java/io/opentelemetry/api/trace/DefaultTracerProvider.java +++ b/api/src/main/java/io/opentelemetry/api/trace/DefaultTracerProvider.java @@ -6,6 +6,7 @@ package io.opentelemetry.api.trace; import javax.annotation.concurrent.ThreadSafe; +import java.util.Objects; @ThreadSafe class DefaultTracerProvider implements TracerProvider { @@ -23,6 +24,7 @@ public Tracer get(String instrumentationName) { @Override public Tracer get(String instrumentationName, String instrumentationVersion) { + Objects.requireNonNull(instrumentationName); return Tracer.getDefault(); } diff --git a/api/src/test/java/io/opentelemetry/api/metrics/DefaultMeterProviderTest.java b/api/src/test/java/io/opentelemetry/api/metrics/DefaultMeterProviderTest.java new file mode 100644 index 00000000000..189a55b7911 --- /dev/null +++ b/api/src/test/java/io/opentelemetry/api/metrics/DefaultMeterProviderTest.java @@ -0,0 +1,14 @@ +package io.opentelemetry.api.metrics; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +class DefaultMeterProviderTest { + + @Test + void rejectsNullInstrumentationName() { + assertThrows(NullPointerException.class, () -> DefaultMeterProvider.getInstance().get(null)); + assertThrows(NullPointerException.class, () -> DefaultMeterProvider.getInstance().get(null, "1.0.0")); + } +} diff --git a/api/src/test/java/io/opentelemetry/api/trace/DefaultTracerProviderTest.java b/api/src/test/java/io/opentelemetry/api/trace/DefaultTracerProviderTest.java new file mode 100644 index 00000000000..d9c3853a49f --- /dev/null +++ b/api/src/test/java/io/opentelemetry/api/trace/DefaultTracerProviderTest.java @@ -0,0 +1,14 @@ +package io.opentelemetry.api.trace; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +class DefaultTracerProviderTest { + + @Test + void rejectsNullInstrumentationName() { + assertThrows(NullPointerException.class, () -> DefaultTracerProvider.getInstance().get(null)); + assertThrows(NullPointerException.class, () -> DefaultTracerProvider.getInstance().get(null, "1.0.0")); + } +} diff --git a/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/MeterSdkRegistryTest.java b/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/MeterSdkRegistryTest.java index fa7dabaa247..bd79886822c 100644 --- a/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/MeterSdkRegistryTest.java +++ b/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/MeterSdkRegistryTest.java @@ -101,4 +101,10 @@ void metricProducer_GetAllMetrics() { Collections.singletonList( LongPoint.create(testClock.now(), testClock.now(), Labels.empty(), 10)))); } + + @Test + void rejectsNullInstrumentationName() { + assertThrows(NullPointerException.class, () -> meterProvider.get(null)); + assertThrows(NullPointerException.class, () -> meterProvider.get(null, "1.0.0")); + } } diff --git a/sdk/tracing/src/test/java/io/opentelemetry/sdk/trace/TracerSdkProviderTest.java b/sdk/tracing/src/test/java/io/opentelemetry/sdk/trace/TracerSdkProviderTest.java index a72cb6926d2..3514ef38a1d 100644 --- a/sdk/tracing/src/test/java/io/opentelemetry/sdk/trace/TracerSdkProviderTest.java +++ b/sdk/tracing/src/test/java/io/opentelemetry/sdk/trace/TracerSdkProviderTest.java @@ -134,4 +134,10 @@ void returnNoopSpanAfterShutdown() { assertThat(span.getSpanContext().isValid()).isFalse(); span.end(); } + + @Test + void rejectsNullInstrumentationName() { + assertThrows(NullPointerException.class, () -> tracerFactory.get(null)); + assertThrows(NullPointerException.class, () -> tracerFactory.get(null, "1.0.0")); + } }