From d2cc576320af6dd61a26f0f9d8dabc337918c975 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Mon, 11 Jul 2016 16:08:52 -0700 Subject: [PATCH] core: Fix ErrorProne errors --- .../main/java/io/grpc/internal/ManagedChannelImpl.java | 9 +++++++++ core/src/main/java/io/grpc/internal/ServerImpl.java | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java index de4a14dcfa..8a3891f9a6 100644 --- a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java +++ b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java @@ -259,6 +259,15 @@ public final class ManagedChannelImpl extends ManagedChannel implements WithLogI return balancer; } + // ErrorProne's GuardedByChecker can't figure out that the idleModeTimer is a nested instance of + // this particular instance. It is worried about something like: + // ManagedChannelImpl a = ...; + // ManagedChannelImpl b = ...; + // a.idleModeTimer = b.idleModeTimer; + // a.cancelIdleTimer(); // access of b.idleModeTimer is guarded by a.lock, not b.lock + // + // _We_ know that isn't happening, so we suppress the warning. + @SuppressWarnings("GuardedByChecker") @GuardedBy("lock") private void cancelIdleTimer() { if (idleModeTimerFuture != null) { diff --git a/core/src/main/java/io/grpc/internal/ServerImpl.java b/core/src/main/java/io/grpc/internal/ServerImpl.java index edf11bc69a..a4a40cb9ba 100644 --- a/core/src/main/java/io/grpc/internal/ServerImpl.java +++ b/core/src/main/java/io/grpc/internal/ServerImpl.java @@ -79,9 +79,10 @@ import javax.annotation.concurrent.GuardedBy; public final class ServerImpl extends io.grpc.Server { private static final ServerStreamListener NOOP_LISTENER = new NoopListener(); - /** Executor for application processing. */ + /** Executor for application processing. Safe to read after {@link #start()}. */ private Executor executor; - @GuardedBy("lock") private boolean usingSharedExecutor; + /** Safe to read after {@link #start()}. */ + private boolean usingSharedExecutor; private final InternalHandlerRegistry registry; private final HandlerRegistry fallbackRegistry; @GuardedBy("lock") private boolean started;