diff --git a/core/build.gradle b/core/build.gradle index e5670e4cdd0..700592f86f3 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,11 +1,5 @@ description = 'gRPC: Core' -// Workaround: -// [Undefined reference (android-api-level-14-4.0_r4)] io.grpc.internal.(Rescheduler.java:87) -// >> Object java.util.Objects.requireNonNull(Object) -sourceCompatibility = 1.6 -targetCompatibility = 1.6 - dependencies { compile project(':grpc-context'), libraries.gson, diff --git a/core/src/main/java/io/grpc/internal/Rescheduler.java b/core/src/main/java/io/grpc/internal/Rescheduler.java index e4d198059fe..75a106e895f 100644 --- a/core/src/main/java/io/grpc/internal/Rescheduler.java +++ b/core/src/main/java/io/grpc/internal/Rescheduler.java @@ -60,7 +60,7 @@ void reschedule(long delay, TimeUnit timeUnit) { if (wakeUp != null) { wakeUp.cancel(false); } - wakeUp = scheduler.schedule(new FutureRunnable(this), delayNanos, TimeUnit.NANOSECONDS); + wakeUp = scheduler.schedule(new FutureRunnable(), delayNanos, TimeUnit.NANOSECONDS); } runAtNanos = newRunAtNanos; } @@ -74,17 +74,14 @@ void cancel(boolean permanent) { } } - private static final class FutureRunnable implements Runnable { - - private final Rescheduler rescheduler; - - FutureRunnable(Rescheduler rescheduler) { - this.rescheduler = rescheduler; - } - + private final class FutureRunnable implements Runnable { @Override public void run() { - rescheduler.serializingExecutor.execute(rescheduler.new ChannelFutureRunnable()); + Rescheduler.this.serializingExecutor.execute(new ChannelFutureRunnable()); + } + + private boolean isEnabled() { + return Rescheduler.this.enabled; } } @@ -99,7 +96,7 @@ public void run() { long now = nanoTime(); if (runAtNanos - now > 0) { wakeUp = scheduler.schedule( - new FutureRunnable(Rescheduler.this), runAtNanos - now, TimeUnit.NANOSECONDS); + new FutureRunnable(), runAtNanos - now, TimeUnit.NANOSECONDS); } else { enabled = false; wakeUp = null; @@ -110,7 +107,7 @@ public void run() { @VisibleForTesting static boolean isEnabled(Runnable r) { - return ((FutureRunnable) r).rescheduler.enabled; + return ((FutureRunnable) r).isEnabled(); } private long nanoTime() {