diff options
author | Kristen Kozak <sebright@google.com> | 2018-04-03 16:37:22 -0700 |
---|---|---|
committer | Kristen Kozak <sebright@google.com> | 2018-04-04 19:16:28 -0700 |
commit | 1e09da2b34cce91cab3bd40290a0e16d60042afe (patch) | |
tree | 18dba55d696fa28b62270c6f420cc00ab64f9eed | |
parent | 26110b6cbf41dcf889502022a495576511025335 (diff) | |
download | opencensus-java-1e09da2b34cce91cab3bd40290a0e16d60042afe.tar.gz |
Add nullness annotations to Preconditions.checkNotNull.
This commit also adds annotations to TextFormat that were required after the
change in checkNotNull.
4 files changed, 32 insertions, 9 deletions
diff --git a/api/src/main/java/io/opencensus/trace/propagation/TextFormat.java b/api/src/main/java/io/opencensus/trace/propagation/TextFormat.java index eaa7bf00..66d018ce 100644 --- a/api/src/main/java/io/opencensus/trace/propagation/TextFormat.java +++ b/api/src/main/java/io/opencensus/trace/propagation/TextFormat.java @@ -24,6 +24,10 @@ import java.util.Collections; import java.util.List; import javax.annotation.Nullable; +/*>>> +import org.checkerframework.checker.nullness.qual.NonNull; +*/ + /** * Injects and extracts {@link SpanContext trace identifiers} as text into carriers that travel * in-band across process boundaries. Identifiers are often encoded as messaging or RPC request @@ -103,7 +107,8 @@ public abstract class TextFormat { * @param setter invoked for each propagation key to add or remove. * @since 0.11 */ - public abstract <C> void inject(SpanContext spanContext, C carrier, Setter<C> setter); + public abstract <C /*>>> extends @NonNull Object*/> void inject( + SpanContext spanContext, C carrier, Setter<C> setter); /** * Class that allows a {@code TextFormat} to set propagated fields into a carrier. @@ -138,8 +143,8 @@ public abstract class TextFormat { * @throws SpanContextParseException if the input is invalid * @since 0.11 */ - public abstract <C> SpanContext extract(C carrier, Getter<C> getter) - throws SpanContextParseException; + public abstract <C /*>>> extends @NonNull Object*/> SpanContext extract( + C carrier, Getter<C> getter) throws SpanContextParseException; /** * Class that allows a {@code TextFormat} to read propagated fields from a carrier. @@ -183,14 +188,15 @@ public abstract class TextFormat { } @Override - public <C> void inject(SpanContext spanContext, C carrier, Setter<C> setter) { + public <C /*>>> extends @NonNull Object*/> void inject( + SpanContext spanContext, C carrier, Setter<C> setter) { checkNotNull(spanContext, "spanContext"); checkNotNull(carrier, "carrier"); checkNotNull(setter, "setter"); } @Override - public <C> SpanContext extract(C carrier, Getter<C> getter) { + public <C /*>>> extends @NonNull Object*/> SpanContext extract(C carrier, Getter<C> getter) { checkNotNull(carrier, "carrier"); checkNotNull(getter, "getter"); return SpanContext.INVALID; diff --git a/checker-framework/stubs/guava.astub b/checker-framework/stubs/guava.astub index ff7a795d..42ed251e 100644 --- a/checker-framework/stubs/guava.astub +++ b/checker-framework/stubs/guava.astub @@ -1,4 +1,5 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; +import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; package com.google.common.base; @@ -7,3 +8,7 @@ class Strings { @EnsuresNonNullIf(result = false, expression = "#1") static boolean isNullOrEmpty(@Nullable String str); } + +class Preconditions { + static <T extends @NonNull Object> T checkNotNull(T reference, @Nullable Object errorMessage); +} diff --git a/contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java b/contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java index a6acc985..70811ee7 100644 --- a/contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java +++ b/contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java @@ -31,6 +31,10 @@ import java.nio.ByteBuffer; import java.util.Collections; import java.util.List; +/*>>> +import org.checkerframework.checker.nullness.qual.NonNull; +*/ + /** * Implementation of the "X-Cloud-Trace-Context" format, defined by the Google Cloud Trace. * @@ -80,7 +84,8 @@ final class CloudTraceFormat extends TextFormat { } @Override - public <C> void inject(SpanContext spanContext, C carrier, Setter<C> setter) { + public <C /*>>> extends @NonNull Object*/> void inject( + SpanContext spanContext, C carrier, Setter<C> setter) { checkNotNull(spanContext, "spanContext"); checkNotNull(setter, "setter"); checkNotNull(carrier, "carrier"); @@ -96,7 +101,8 @@ final class CloudTraceFormat extends TextFormat { } @Override - public <C> SpanContext extract(C carrier, Getter<C> getter) throws SpanContextParseException { + public <C /*>>> extends @NonNull Object*/> SpanContext extract(C carrier, Getter<C> getter) + throws SpanContextParseException { checkNotNull(carrier, "carrier"); checkNotNull(getter, "getter"); try { diff --git a/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java b/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java index 3a9f2420..67c66ea9 100644 --- a/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java +++ b/impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java @@ -29,6 +29,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +/*>>> +import org.checkerframework.checker.nullness.qual.NonNull; +*/ + /** * Implementation of the B3 propagation protocol. See <a * href=https://github.com/openzipkin/b3-propagation>b3-propagation</a>. @@ -58,7 +62,8 @@ final class B3Format extends TextFormat { } @Override - public <C> void inject(SpanContext spanContext, C carrier, Setter<C> setter) { + public <C /*>>> extends @NonNull Object*/> void inject( + SpanContext spanContext, C carrier, Setter<C> setter) { checkNotNull(spanContext, "spanContext"); checkNotNull(setter, "setter"); checkNotNull(carrier, "carrier"); @@ -70,7 +75,8 @@ final class B3Format extends TextFormat { } @Override - public <C> SpanContext extract(C carrier, Getter<C> getter) throws SpanContextParseException { + public <C /*>>> extends @NonNull Object*/> SpanContext extract(C carrier, Getter<C> getter) + throws SpanContextParseException { checkNotNull(carrier, "carrier"); checkNotNull(getter, "getter"); try { |