Fix warnings introduced in 6673becb41c774b1063e4b18c1821ced049fee2e

Eclipse was complaining about these.

Change-Id: Id253d8ee93207b2a26e26ab4e5d7930cf62f2884
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ChainedScheduler.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ChainedScheduler.java
index ff3fdf3..89b97e9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ChainedScheduler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ChainedScheduler.java
@@ -40,7 +40,7 @@
    */
   public interface Runner<T> {
     /** Will get executed in the thread pool task for each item */
-    default void run(T item) {}
+    void run(T item);
 
     /** Will get called after the last item completes */
     default void onDone() {}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
index 641ac7d..66be6dd 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
@@ -188,7 +188,7 @@
 
   private void firePendingEvents() {
     replaying = true;
-    new ChainedScheduler.StreamScheduler<ReplicationTasksStorage.ReplicateRefUpdate>(
+    new ChainedScheduler.StreamScheduler<>(
         workQueue.getDefaultQueue(),
         replicationTasksStorage.streamWaiting(),
         new ChainedScheduler.Runner<ReplicationTasksStorage.ReplicateRefUpdate>() {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ChainedSchedulerTest.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ChainedSchedulerTest.java
index 1ad8c4d..90191f2 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/ChainedSchedulerTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ChainedSchedulerTest.java
@@ -238,7 +238,7 @@
     TestRunner runner = new TestRunner();
     List<String> items = new ArrayList<>();
 
-    new ChainedScheduler(executor, items.iterator(), runner);
+    new ChainedScheduler<>(executor, items.iterator(), runner);
     assertThat(runner.awaitDone(1)).isEqualTo(true);
     assertThat(runner.runCount()).isEqualTo(0);
   }
@@ -250,7 +250,7 @@
     List<String> items = new ArrayList<>();
     items.add(FIRST);
 
-    new ChainedScheduler(executor, items.iterator(), runner);
+    new ChainedScheduler<>(executor, items.iterator(), runner);
     assertThat(runner.awaitDone(1)).isEqualTo(true);
     assertThat(runner.runCount()).isEqualTo(1);
   }
@@ -261,7 +261,7 @@
     TestRunner runner = new TestRunner();
     List<String> items = createManyItems();
 
-    new ChainedScheduler(executor, items.iterator(), runner);
+    new ChainedScheduler<>(executor, items.iterator(), runner);
     assertThat(runner.awaitDone(items.size())).isEqualTo(true);
     assertThat(runner.runCount()).isEqualTo(items.size());
   }
@@ -282,7 +282,7 @@
     items.add(SECOND);
     items.add(THIRD);
 
-    new ChainedScheduler(executor, items.iterator(), runner);
+    new ChainedScheduler<>(executor, items.iterator(), runner);
     assertThat(runner.awaitDone(items.size())).isEqualTo(true);
     assertThat(runner.runCount()).isEqualTo(items.size());
   }
@@ -293,7 +293,7 @@
     WaitingRunner runner = new WaitingRunner();
     List<String> items = createManyItems();
 
-    new ChainedScheduler(executor, items.iterator(), runner);
+    new ChainedScheduler<>(executor, items.iterator(), runner);
     for (int i = 1; i <= items.size(); i++) {
       assertThat(runner.isDone()).isEqualTo(false);
       runner.runOneRandomStarted();
@@ -312,7 +312,7 @@
       List<String> items = createItems(threads + 1 /* Running */ + 1 /* Waiting */);
       CountingIterator it = new CountingIterator(items.iterator());
 
-      new ChainedScheduler(executor, it, runner);
+      new ChainedScheduler<>(executor, it, runner);
       assertThat(runner.awaitStart(FIRST, 1)).isEqualTo(true); // Confirms at least one Running
       assertThat(it.count).isGreaterThan(1); // Confirms at least one extra Waiting or Running
       assertThat(it.count).isLessThan(items.size()); // Confirms at least one still not queued
@@ -341,7 +341,7 @@
     WaitingRunner runner = new WaitingRunner();
     List<String> items = createManyItems();
 
-    new ChainedScheduler(executor, items.iterator(), runner);
+    new ChainedScheduler<>(executor, items.iterator(), runner);
 
     for (int j = 1; j <= MANY_ITEMS_SIZE; j += threads) {
       // If #threads items can start before any complete, it proves #threads are
@@ -372,7 +372,7 @@
       batches.add(executeWaitingRunnableBatch(batchSize, executor));
     }
 
-    new ChainedScheduler(executor, items.iterator(), runner);
+    new ChainedScheduler<>(executor, items.iterator(), runner);
 
     for (int i = 1; i <= items.size(); i++) {
       for (int b = 0; b < blockSize; b++) {
@@ -399,7 +399,8 @@
     TestRunner runner = new TestRunner();
     List<String> items = createManyItems();
 
-    new ChainedScheduler(executor, items.iterator(), new ChainedScheduler.ForwardingRunner(runner));
+    new ChainedScheduler<>(
+        executor, items.iterator(), new ChainedScheduler.ForwardingRunner<>(runner));
     assertThat(runner.awaitDone(items.size())).isEqualTo(true);
     assertThat(runner.runCount()).isEqualTo(items.size());
   }
@@ -415,21 +416,15 @@
     final AtomicBoolean closed = new AtomicBoolean(false);
     Object closeRecorder =
         new Object() {
+          @SuppressWarnings("unused") // Called via reflection
           public void close() {
             closed.set(true);
           }
         };
-    Stream<String> stream =
-        ForwardingProxy.create(
-            Stream.class,
-            items.stream(),
-            new Object() {
-              public void close() {
-                closed.set(true);
-              }
-            });
+    @SuppressWarnings("unchecked") // Stream.class is converted to Stream<String>.class
+    Stream<String> stream = ForwardingProxy.create(Stream.class, items.stream(), closeRecorder);
 
-    new ChainedScheduler.StreamScheduler(executor, stream, runner);
+    new ChainedScheduler.StreamScheduler<>(executor, stream, runner);
     assertThat(closed.get()).isEqualTo(false);
 
     // Since there is only a single thread, the Stream cannot get closed before this runs
diff --git a/src/test/java/com/googlesource/gerrit/plugins/replication/ForwardingProxy.java b/src/test/java/com/googlesource/gerrit/plugins/replication/ForwardingProxy.java
index dbd538e..a1f61fe 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/replication/ForwardingProxy.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/replication/ForwardingProxy.java
@@ -70,11 +70,12 @@
     }
   }
 
+  @SuppressWarnings("unchecked") // newProxyInstance returns Object
   public static <T> T create(Class<T> toProxy, T delegate, Object overrider) {
     return (T)
         Proxy.newProxyInstance(
             delegate.getClass().getClassLoader(),
             new Class[] {toProxy},
-            new Handler(delegate, overrider));
+            new Handler<>(delegate, overrider));
   }
 }