aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorEric Gribkoff <ericgribkoff@google.com>2018-08-27 20:48:57 -0700
committerGitHub <noreply@github.com>2018-08-27 20:48:57 -0700
commit67ee4b6a8f43bfae9f367c7f05d9641d6397bbab (patch)
tree5c1167e50bcdf560da7e04f4a79826ba3f627150 /core
parenta80159f85cdc121fd1e594034d4d698ce2f94779 (diff)
downloadgrpc-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.gradle6
-rw-r--r--core/src/main/java/io/grpc/internal/Rescheduler.java21
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() {