diff options
| author | sebright <sebright@google.com> | 2017-12-22 18:00:12 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-12-22 18:00:12 -0800 |
| commit | 1049f48ff933720506a70099bea8f9df23e2d993 (patch) | |
| tree | a7effbe9c37ffa95d4972552825ccacc923a9734 /contrib | |
| parent | 3924d3d7d9d65fd3caa864466763e7a77d0e8999 (diff) | |
| parent | fbe01af5eb386508617a91906253e5b5f19fa1be (diff) | |
| download | platform_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')
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 { |
