Skip to content

Commit 95f0e5e

Browse files
committed
add nullaway
1 parent a7248cb commit 95f0e5e

File tree

14 files changed

+41
-29
lines changed

14 files changed

+41
-29
lines changed

instrumentation-api-incubator/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ plugins {
66
id("otel.jacoco-conventions")
77
id("otel.japicmp-conventions")
88
id("otel.publish-conventions")
9+
id("otel.nullaway-conventions")
910
}
1011

1112
group = "io.opentelemetry.instrumentation"

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpClientInstrumenterBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ private DefaultHttpClientInstrumenterBuilder(
6969
String instrumentationName,
7070
OpenTelemetry openTelemetry,
7171
HttpClientAttributesGetter<REQUEST, RESPONSE> attributesGetter,
72-
TextMapSetter<REQUEST> headerSetter) {
72+
@Nullable TextMapSetter<REQUEST> headerSetter) {
7373
this.instrumentationName = Objects.requireNonNull(instrumentationName, "instrumentationName");
7474
this.openTelemetry = Objects.requireNonNull(openTelemetry, "openTelemetry");
7575
this.attributesGetter = Objects.requireNonNull(attributesGetter, "attributesGetter");
@@ -82,7 +82,7 @@ public static <REQUEST, RESPONSE> DefaultHttpClientInstrumenterBuilder<REQUEST,
8282
String instrumentationName,
8383
OpenTelemetry openTelemetry,
8484
HttpClientAttributesGetter<REQUEST, RESPONSE> attributesGetter) {
85-
return new DefaultHttpClientInstrumenterBuilder<REQUEST, RESPONSE>(
85+
return new DefaultHttpClientInstrumenterBuilder<>(
8686
instrumentationName, openTelemetry, attributesGetter, null);
8787
}
8888

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/builder/internal/DefaultHttpServerInstrumenterBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ private DefaultHttpServerInstrumenterBuilder(
6464
String instrumentationName,
6565
OpenTelemetry openTelemetry,
6666
HttpServerAttributesGetter<REQUEST, RESPONSE> attributesGetter,
67-
TextMapGetter<REQUEST> headerGetter) {
67+
@Nullable TextMapGetter<REQUEST> headerGetter) {
6868
this.instrumentationName = Objects.requireNonNull(instrumentationName, "instrumentationName");
6969
this.openTelemetry = Objects.requireNonNull(openTelemetry, "openTelemetry");
7070
this.attributesGetter = Objects.requireNonNull(attributesGetter, "attributesGetter");

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/CommonConfig.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import java.util.HashSet;
1818
import java.util.List;
1919
import java.util.Set;
20-
import java.util.function.Function;
2120
import java.util.function.Supplier;
21+
import javax.annotation.Nullable;
2222

2323
/**
2424
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
@@ -41,6 +41,11 @@ public final class CommonConfig {
4141
private final String loggingSpanIdKey;
4242
private final String loggingTraceFlagsKey;
4343

44+
interface ValueProvider<T> {
45+
@Nullable
46+
T get(ConfigProvider configProvider);
47+
}
48+
4449
public CommonConfig(InstrumentationConfig config) {
4550
peerServiceResolver =
4651
PeerServiceResolver.create(
@@ -159,12 +164,12 @@ public String getTraceFlagsKey() {
159164

160165
private static <T> T getFromConfigProviderOrFallback(
161166
InstrumentationConfig config,
162-
Function<ConfigProvider, T> getFromConfigProvider,
167+
ValueProvider<T> getFromConfigProvider,
163168
T defaultValue,
164169
Supplier<T> fallback) {
165170
ConfigProvider configProvider = config.getConfigProvider();
166171
if (configProvider != null) {
167-
T value = getFromConfigProvider.apply(configProvider);
172+
T value = getFromConfigProvider.get(configProvider);
168173
return value != null ? value : defaultValue;
169174
}
170175
// fallback doesn't return null, so we can safely call it

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/InstrumenterCustomizer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.opentelemetry.instrumentation.api.instrumenter.OperationMetrics;
1313
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
1414
import java.util.function.Function;
15+
import javax.annotation.Nullable;
1516

1617
/**
1718
* Provides customizations for instrumentation, including operation metrics, attributes extraction,
@@ -76,6 +77,7 @@ InstrumenterCustomizer addAttributesExtractors(
7677
* @param spanNameExtractorTransformer function that transforms the original span name extractor
7778
* @return this InstrumenterCustomizer for method chaining
7879
*/
80+
@Nullable
7981
InstrumenterCustomizer setSpanNameExtractor(
8082
Function<SpanNameExtractor<?>, SpanNameExtractor<?>> spanNameExtractorTransformer);
8183
}

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/instrumenter/internal/InstrumenterCustomizerImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
1313
import io.opentelemetry.instrumentation.api.internal.InternalInstrumenterCustomizer;
1414
import java.util.function.Function;
15+
import javax.annotation.Nullable;
1516

1617
/**
1718
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
@@ -56,6 +57,7 @@ public InstrumenterCustomizer addContextCustomizer(ContextCustomizer<?> customiz
5657
}
5758

5859
@Override
60+
@Nullable
5961
public InstrumenterCustomizer setSpanNameExtractor(
6062
Function<SpanNameExtractor<?>, SpanNameExtractor<?>> spanNameExtractorTransformer) {
6163
customizer.setSpanNameExtractor(spanNameExtractorTransformer);

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesGetter.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@ default String getSystem(REQUEST request) {
1616
return null;
1717
}
1818

19-
// TODO: make this required to implement
20-
@Nullable
21-
default String getDbSystem(REQUEST request) {
22-
return getSystem(request);
23-
}
19+
String getDbSystem(REQUEST request);
2420

2521
@Deprecated
2622
@Nullable
@@ -37,11 +33,8 @@ default String getName(REQUEST request) {
3733
return null;
3834
}
3935

40-
// TODO: make this required to implement
4136
@Nullable
42-
default String getDbNamespace(REQUEST request) {
43-
return getName(request);
44-
}
37+
String getDbNamespace(REQUEST request);
4538

4639
@Deprecated
4740
@Nullable

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientSpanNameExtractor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
99
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
1010
import java.util.Collection;
11+
import javax.annotation.Nullable;
1112

1213
public abstract class DbClientSpanNameExtractor<REQUEST> implements SpanNameExtractor<REQUEST> {
1314

@@ -42,7 +43,8 @@ public static <REQUEST> SpanNameExtractor<REQUEST> create(
4243

4344
private DbClientSpanNameExtractor() {}
4445

45-
protected String computeSpanName(String dbName, String operation, String mainIdentifier) {
46+
protected String computeSpanName(
47+
@Nullable String dbName, @Nullable String operation, @Nullable String mainIdentifier) {
4648
if (operation == null) {
4749
return dbName == null ? DEFAULT_SPAN_NAME : dbName;
4850
}

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/MultiQuery.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@
88
import java.util.Collection;
99
import java.util.LinkedHashSet;
1010
import java.util.Set;
11+
import javax.annotation.Nullable;
1112

1213
class MultiQuery {
1314

14-
private final String mainIdentifier;
15-
private final String operation;
15+
@Nullable private final String mainIdentifier;
16+
@Nullable private final String operation;
1617
private final Set<String> statements;
1718

18-
private MultiQuery(String mainIdentifier, String operation, Set<String> statements) {
19+
private MultiQuery(
20+
@Nullable String mainIdentifier, @Nullable String operation, Set<String> statements) {
1921
this.mainIdentifier = mainIdentifier;
2022
this.operation = operation;
2123
this.statements = statements;
@@ -40,10 +42,12 @@ static MultiQuery analyze(
4042
uniqueMainIdentifier.getValue(), uniqueOperation.getValue(), uniqueStatements);
4143
}
4244

45+
@Nullable
4346
public String getMainIdentifier() {
4447
return mainIdentifier;
4548
}
4649

50+
@Nullable
4751
public String getOperation() {
4852
return operation;
4953
}
@@ -53,10 +57,10 @@ public Set<String> getStatements() {
5357
}
5458

5559
private static class UniqueValue {
56-
private String value;
60+
@Nullable private String value;
5761
private boolean valid = true;
5862

59-
void set(String value) {
63+
void set(@Nullable String value) {
6064
if (!valid) {
6165
return;
6266
}
@@ -67,6 +71,7 @@ void set(String value) {
6771
}
6872
}
6973

74+
@Nullable
7075
String getValue() {
7176
return valid ? value : null;
7277
}

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesGetter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ default Collection<String> getRawQueryTexts(REQUEST request) {
6565
}
6666

6767
// TODO: make this required to implement
68+
@Nullable
6869
default Long getBatchSize(REQUEST request) {
6970
return null;
7071
}

0 commit comments

Comments
 (0)