diff options
author | Eric Gribkoff <ericgribkoff@google.com> | 2018-08-27 20:48:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-27 20:48:57 -0700 |
commit | 67ee4b6a8f43bfae9f367c7f05d9641d6397bbab (patch) | |
tree | 5c1167e50bcdf560da7e04f4a79826ba3f627150 /core | |
parent | a80159f85cdc121fd1e594034d4d698ce2f94779 (diff) | |
download | grpc-grpc-java-67ee4b6a8f43bfae9f367c7f05d9641d6397bbab.tar.gz |
core: switch to Java 7 source and bytecode (#4801)
javac can produce code that invokes Object.requireNonNull when instantiating
an inner class using a instance variable. See
https://bugs.openjdk.java.net/browse/JDK-8202137
Diffstat (limited to 'core')
-rw-r--r-- | core/build.gradle | 6 | ||||
-rw-r--r-- | core/src/main/java/io/grpc/internal/Rescheduler.java | 21 |
2 files changed, 9 insertions, 18 deletions
diff --git a/core/build.gradle b/core/build.gradle index e5670e4cd..700592f86 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 e4d198059..75a106e89 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 @@ final class Rescheduler { 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 @@ final class Rescheduler { } } - 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 @@ final class Rescheduler { 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 @@ final class Rescheduler { @VisibleForTesting static boolean isEnabled(Runnable r) { - return ((FutureRunnable) r).rescheduler.enabled; + return ((FutureRunnable) r).isEnabled(); } private long nanoTime() { |