aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorsebright <sebright@google.com>2017-12-22 18:00:12 -0800
committerGitHub <noreply@github.com>2017-12-22 18:00:12 -0800
commit1049f48ff933720506a70099bea8f9df23e2d993 (patch)
treea7effbe9c37ffa95d4972552825ccacc923a9734 /contrib
parent3924d3d7d9d65fd3caa864466763e7a77d0e8999 (diff)
parentfbe01af5eb386508617a91906253e5b5f19fa1be (diff)
downloadplatform_external_opencensus-java-1049f48ff933720506a70099bea8f9df23e2d993.tar.gz
platform_external_opencensus-java-1049f48ff933720506a70099bea8f9df23e2d993.tar.bz2
platform_external_opencensus-java-1049f48ff933720506a70099bea8f9df23e2d993.zip
Merge pull request #916 from sebright/enable-checker-framework
Run Checker Framework null analysis (fixes #359).
Diffstat (limited to 'contrib')
-rw-r--r--contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/ContextTrampoline.java2
-rw-r--r--contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/TraceTrampoline.java2
-rw-r--r--contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TraceConfigzZPageHandler.java14
-rw-r--r--contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java8
4 files changed, 23 insertions, 3 deletions
diff --git a/contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/ContextTrampoline.java b/contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/ContextTrampoline.java
index dd250790..382a161d 100644
--- a/contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/ContextTrampoline.java
+++ b/contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/ContextTrampoline.java
@@ -31,6 +31,8 @@ package io.opencensus.contrib.agent.bootstrap;
* <p>{@code ContextTrampoline} is implemented as a static class to allow for easy and fast use from
* instrumented bytecode. We cannot use dependency injection for the instrumented bytecode.
*/
+// TODO(sebright): Fix the Checker Framework warnings.
+@SuppressWarnings("nullness")
public final class ContextTrampoline {
// Not synchronized to avoid any synchronization costs after initialization.
diff --git a/contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/TraceTrampoline.java b/contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/TraceTrampoline.java
index 975caf99..b4501b45 100644
--- a/contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/TraceTrampoline.java
+++ b/contrib/agent/src/main/java/io/opencensus/contrib/agent/bootstrap/TraceTrampoline.java
@@ -35,6 +35,8 @@ import javax.annotation.Nullable;
* <p>{@code TraceTrampoline} is implemented as a static class to allow for easy and fast use from
* instrumented bytecode. We cannot use dependency injection for the instrumented bytecode.
*/
+// TODO(sebright): Fix the Checker Framework warnings.
+@SuppressWarnings("nullness")
public final class TraceTrampoline {
// Not synchronized to avoid any synchronization costs after initialization.
diff --git a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TraceConfigzZPageHandler.java b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TraceConfigzZPageHandler.java
index 9b075b30..5257960d 100644
--- a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TraceConfigzZPageHandler.java
+++ b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TraceConfigzZPageHandler.java
@@ -16,8 +16,6 @@
package io.opencensus.contrib.zpages;
-import static com.google.common.base.Strings.isNullOrEmpty;
-
import com.google.common.base.Charsets;
import io.opencensus.trace.config.TraceConfig;
import io.opencensus.trace.config.TraceParams;
@@ -27,6 +25,11 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Map;
+import javax.annotation.Nullable;
+
+/*>>>
+import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf;
+*/
// TODO(bdrutu): Add tests.
/**
@@ -167,6 +170,13 @@ final class TraceConfigzZPageHandler extends ZPageHandler {
}
}
+ // TODO(sebright): Try to use a Checker Framework stub file for the Guava Strings class and use
+ // Strings.isNullOrEmpty instead.
+ /*>>> @EnsuresNonNullIf(result = false, expression = "#1") */
+ private static boolean isNullOrEmpty(@Nullable String str) {
+ return str == null || str.isEmpty();
+ }
+
// Prints a table to a PrintWriter that shows existing trace parameters.
private static void emitTraceParamsTable(TraceParams params, PrintWriter out) {
out.write(
diff --git a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java
index a1f3545b..7a42c2c7 100644
--- a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java
+++ b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java
@@ -370,7 +370,7 @@ final class TracezZPageHandler extends ZPageHandler {
.escape(
event.getEvent() instanceof Annotation
? renderAnnotation((Annotation) event.getEvent())
- : renderNetworkEvents((NetworkEvent) event.getEvent())));
+ : renderNetworkEvents((NetworkEvent) castNonNull(event.getEvent()))));
lastTimestampNanos = event.getTimestamp();
}
@@ -383,6 +383,12 @@ final class TracezZPageHandler extends ZPageHandler {
"", htmlEscaper().escape(renderAttributes(span.getAttributes().getAttributeMap())));
}
+ // TODO(sebright): Remove this method.
+ @SuppressWarnings("nullness")
+ private static <T> T castNonNull(@Nullable T arg) {
+ return arg;
+ }
+
// Emits the summary table with links to all samples.
private void emitSummaryTable(PrintWriter out, Formatter formatter)
throws UnsupportedEncodingException {