Skip to content

Commit

Permalink
Add @Nullable annotations (#744)
Browse files Browse the repository at this point in the history
* Added `@Nullable` annotations to method parameters and return values

* Fixed that `OtelSpan.event()` does not return null
  • Loading branch information
m15o committed Jun 11, 2024
1 parent f2764ad commit bee7c5f
Show file tree
Hide file tree
Showing 22 changed files with 89 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,13 @@ public String name() {
}

@Override
@Nullable
public String get() {
return this.traceContext != null ? this.delegate.getValue(traceContext) : this.delegate.getValue();
}

@Override
@Nullable
public String get(TraceContext traceContext) {
return this.delegate.getValue(BraveTraceContext.toBrave(traceContext));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public Map<String, String> getAllBaggage() {
}

@Override
public Map<String, String> getAllBaggage(TraceContext traceContext) {
public Map<String, String> getAllBaggage(@Nullable TraceContext traceContext) {
if (traceContext == null) {
return getAllBaggage();
}
Expand All @@ -97,6 +97,7 @@ public Baggage getBaggage(String name) {
}

@Override
@Nullable
public Baggage getBaggage(TraceContext traceContext, String name) {
BaggageField baggageField = BaggageField.getByName(BraveTraceContext.toBrave(traceContext), name);
if (baggageField == null) {
Expand Down Expand Up @@ -125,6 +126,7 @@ private BraveBaggageInScope baggage(String name) {
}

// Taken from BraveField
@Nullable
private Span currentSpan() {
if (tracer != null) {
io.micrometer.tracing.Span span = tracer.currentSpan();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.micrometer.tracing.brave.bridge;

import io.micrometer.common.lang.Nullable;
import io.micrometer.tracing.CurrentTraceContext;
import io.micrometer.tracing.TraceContext;

Expand Down Expand Up @@ -59,6 +60,7 @@ public static CurrentTraceContext fromBrave(brave.propagation.CurrentTraceContex
}

@Override
@Nullable
public TraceContext context() {
brave.propagation.TraceContext context = this.delegate.get();
if (context == null) {
Expand All @@ -68,13 +70,13 @@ public TraceContext context() {
}

@Override
public Scope newScope(TraceContext context) {
public Scope newScope(@Nullable TraceContext context) {
return new BraveScope(
this.delegate.newScope(io.micrometer.tracing.brave.bridge.BraveTraceContext.toBrave(context)));
}

@Override
public Scope maybeScope(TraceContext context) {
public Scope maybeScope(@Nullable TraceContext context) {
return new BraveScope(
this.delegate.maybeScope(io.micrometer.tracing.brave.bridge.BraveTraceContext.toBrave(context)));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package io.micrometer.tracing.brave.bridge;

import brave.handler.MutableSpan;
import io.micrometer.common.lang.Nullable;
import io.micrometer.tracing.Link;
import io.micrometer.tracing.Span;
import io.micrometer.tracing.TraceContext;
Expand Down Expand Up @@ -154,6 +155,7 @@ public String getTraceId() {
}

@Override
@Nullable
public Throwable getError() {
return this.mutableSpan.error();
}
Expand All @@ -173,6 +175,7 @@ public Span.Kind getKind() {
}

@Override
@Nullable
public String getRemoteServiceName() {
return this.mutableSpan.remoteServiceName();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import brave.baggage.BaggageField;
import brave.internal.baggage.BaggageFields;
import brave.propagation.TraceContextOrSamplingFlags;
import io.micrometer.common.lang.Nullable;
import io.micrometer.tracing.Span;
import io.micrometer.tracing.TraceContext;
import io.micrometer.tracing.propagation.Propagator;
Expand Down Expand Up @@ -49,7 +50,7 @@ public List<String> fields() {
}

@Override
public <C> void inject(TraceContext traceContext, C carrier, Setter<C> setter) {
public <C> void inject(TraceContext traceContext, @Nullable C carrier, Setter<C> setter) {
this.tracing.propagation().injector(setter::set).inject(BraveTraceContext.toBrave(traceContext), carrier);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import java.util.Objects;
import java.util.concurrent.TimeUnit;

import io.micrometer.common.lang.Nullable;
import io.micrometer.tracing.Span;
import io.micrometer.tracing.TraceContext;

Expand All @@ -44,7 +45,8 @@ public BraveSpan(brave.Span delegate) {
* @param span Tracing version
* @return Brave's version
*/
public static brave.Span toBrave(Span span) {
@Nullable
public static brave.Span toBrave(@Nullable Span span) {
BraveSpan braveSpan = (BraveSpan) span;
if (braveSpan == null) {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ public BraveTraceContext(brave.propagation.TraceContext traceContext) {
* @param traceContext Tracing version
* @return Brave version
*/
public static brave.propagation.TraceContext toBrave(TraceContext traceContext) {
@Nullable
public static brave.propagation.TraceContext toBrave(@Nullable TraceContext traceContext) {
if (traceContext == null) {
return null;
}
Expand Down Expand Up @@ -76,6 +77,7 @@ public String spanId() {
}

@Override
@Nullable
public Boolean sampled() {
return this.traceContext.sampled();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package io.micrometer.tracing.brave.bridge;

import brave.propagation.TraceContextOrSamplingFlags;
import io.micrometer.common.lang.Nullable;
import io.micrometer.tracing.*;

import java.util.List;
Expand Down Expand Up @@ -60,7 +61,8 @@ public BraveTracer(brave.Tracer tracer, CurrentTraceContext context) {
}

@Override
public Span nextSpan(Span parent) {
@Nullable
public Span nextSpan(@Nullable Span parent) {
if (parent == null) {
return nextSpan();
}
Expand All @@ -72,7 +74,7 @@ public Span nextSpan(Span parent) {
}

@Override
public SpanInScope withSpan(Span span) {
public SpanInScope withSpan(@Nullable Span span) {
return new BraveSpanInScope(tracer.withSpanInScope(span == null ? null : ((BraveSpan) span).delegate));
}

Expand All @@ -82,6 +84,7 @@ public SpanCustomizer currentSpanCustomizer() {
}

@Override
@Nullable
public Span currentSpan() {
brave.Span currentSpan = this.tracer.currentSpan();
if (currentSpan == null) {
Expand Down Expand Up @@ -111,7 +114,7 @@ public TraceContext.Builder traceContextBuilder() {
}

@Override
public Map<String, String> getAllBaggage(TraceContext traceContext) {
public Map<String, String> getAllBaggage(@Nullable TraceContext traceContext) {
return this.braveBaggageManager.getAllBaggage(traceContext);
}

Expand All @@ -121,11 +124,13 @@ public Map<String, String> getAllBaggage() {
}

@Override
@Nullable
public Baggage getBaggage(String name) {
return this.braveBaggageManager.getBaggage(name);
}

@Override
@Nullable
public Baggage getBaggage(TraceContext traceContext, String name) {
return this.braveBaggageManager.getBaggage(traceContext, name);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.micrometer.tracing.brave.bridge;

import io.micrometer.common.lang.Nullable;
import io.micrometer.common.util.StringUtils;
import io.micrometer.tracing.Link;
import io.micrometer.tracing.TraceContext;
Expand Down Expand Up @@ -74,6 +75,7 @@ static int nextIndex(Map<String, String> tags) {
.size();
}

@Nullable
static Link toLink(List<Map.Entry<String, String>> groupedTags) {
String traceId = "";
String spanId = "";
Expand Down Expand Up @@ -119,6 +121,7 @@ static long spanId(String spanId) {
return fromString[fromString.length == 2 ? 1 : 0];
}

@Nullable
static String tagKeyNameFromString(String tag) {
Matcher matcher = TAG_KEY.matcher(tag);
if (matcher.matches()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ public static class ScopeAttachedEvent {
/**
* Context corresponding to the attached scope. Might be {@code null}.
*/
@Nullable
final Context context;

/**
Expand All @@ -86,10 +87,12 @@ public ScopeAttachedEvent(@Nullable Context context) {
this.context = context;
}

@Nullable
public Span getSpan() {
return Span.fromContextOrNull(context);
}

@Nullable
public Baggage getBaggage() {
return Baggage.fromContextOrNull(context);
}
Expand Down Expand Up @@ -117,6 +120,7 @@ public static class ScopeRestoredEvent {
* {@link Context} corresponding to the scope being restored. Might be
* {@code null}.
*/
@Nullable
final Context context;

/**
Expand All @@ -127,10 +131,12 @@ public ScopeRestoredEvent(@Nullable Context context) {
this.context = context;
}

@Nullable
public Span getSpan() {
return Span.fromContextOrNull(context);
}

@Nullable
public Baggage getBaggage() {
return Baggage.fromContextOrNull(context);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package io.micrometer.tracing.otel.bridge;

import io.micrometer.common.lang.Nullable;
import io.micrometer.common.util.internal.logging.InternalLogger;
import io.micrometer.common.util.internal.logging.InternalLoggerFactory;
import io.micrometer.tracing.BaggageInScope;
Expand Down Expand Up @@ -83,6 +84,7 @@ public String name() {
}

@Override
@Nullable
public String get() {
if (entry.get() != null) {
return entry.get().value;
Expand All @@ -91,6 +93,7 @@ public String get() {
}

@Override
@Nullable
public String get(TraceContext traceContext) {
Entry entry = this.otelBaggageManager.getEntry((OtelTraceContext) traceContext, entry().getKey());
if (entry == null) {
Expand All @@ -105,7 +108,7 @@ public io.micrometer.tracing.Baggage set(String value) {
return doSet(this.currentTraceContext.context(), value);
}

private io.micrometer.tracing.Baggage doSet(TraceContext context, String value) {
private io.micrometer.tracing.Baggage doSet(@Nullable TraceContext context, String value) {
if (context == null) {
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ private Map<String, String> toMap(CompositeBaggage compositeBaggage) {
}

@Override
public Map<String, String> getAllBaggage(TraceContext traceContext) {
public Map<String, String> getAllBaggage(@Nullable TraceContext traceContext) {
if (traceContext == null) {
return getAllBaggage();
}
Expand All @@ -98,7 +98,7 @@ CompositeBaggage currentBaggage() {
return baggage((OtelTraceContext) currentTraceContext.context());
}

private CompositeBaggage baggage(OtelTraceContext traceContext) {
private CompositeBaggage baggage(@Nullable OtelTraceContext traceContext) {
Context context = Context.current();
Deque<Context> stack = new ArrayDeque<>();
stack.addFirst(context);
Expand All @@ -114,13 +114,14 @@ public io.micrometer.tracing.Baggage getBaggage(String name) {
return createNewEntryIfMissing(name, entry);
}

io.micrometer.tracing.Baggage createNewEntryIfMissing(String name, Entry entry) {
io.micrometer.tracing.Baggage createNewEntryIfMissing(String name, @Nullable Entry entry) {
if (entry == null) {
return createBaggage(name);
}
return otelBaggage(entry);
}

@Nullable
private Entry getBaggage(String name, io.opentelemetry.api.baggage.Baggage baggage) {
return entryForName(name, baggage);
}
Expand All @@ -147,16 +148,19 @@ public io.micrometer.tracing.Baggage getBaggage(TraceContext traceContext, Strin
return null;
}

@Nullable
Entry getEntry(OtelTraceContext traceContext, String name) {
OtelTraceContext context = traceContext;
Context ctx = context.context();
return getBaggage(name, Baggage.fromContext(ctx));
}

@Nullable
Context removeFirst(Deque<Context> stack) {
return stack.isEmpty() ? null : stack.removeFirst();
}

@Nullable
private Entry entryForName(String name, io.opentelemetry.api.baggage.Baggage baggage) {
return Entry.fromBaggage(baggage)
.stream()
Expand Down Expand Up @@ -265,6 +269,7 @@ public Map<String, BaggageEntry> asMap() {
}

@Override
@Nullable
public String getEntryValue(String entryKey) {
return this.entries.stream()
.filter(entry -> entryKey.equals(entry.getKey()))
Expand All @@ -284,11 +289,12 @@ class Entry implements BaggageEntry {

final String key;

@Nullable
final String value;

final BaggageEntryMetadata entryMetadata;

Entry(String key, String value, BaggageEntryMetadata entryMetadata) {
Entry(String key, @Nullable String value, BaggageEntryMetadata entryMetadata) {
this.key = key;
this.value = value;
this.entryMetadata = entryMetadata;
Expand Down
Loading

0 comments on commit bee7c5f

Please sign in to comment.