aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristen Kozak <sebright@google.com>2018-04-03 16:37:22 -0700
committerKristen Kozak <sebright@google.com>2018-04-04 19:16:28 -0700
commit1e09da2b34cce91cab3bd40290a0e16d60042afe (patch)
tree18dba55d696fa28b62270c6f420cc00ab64f9eed
parent26110b6cbf41dcf889502022a495576511025335 (diff)
downloadopencensus-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.
-rw-r--r--api/src/main/java/io/opencensus/trace/propagation/TextFormat.java16
-rw-r--r--checker-framework/stubs/guava.astub5
-rw-r--r--contrib/http_util/src/main/java/io/opencensus/contrib/http/util/CloudTraceFormat.java10
-rw-r--r--impl_core/src/main/java/io/opencensus/implcore/trace/propagation/B3Format.java10
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 {