diff --git a/src/main/java/io/reactivex/internal/schedulers/SchedulerPoolFactory.java b/src/main/java/io/reactivex/internal/schedulers/SchedulerPoolFactory.java index 6dfc84ea96..5124b34a6f 100644 --- a/src/main/java/io/reactivex/internal/schedulers/SchedulerPoolFactory.java +++ b/src/main/java/io/reactivex/internal/schedulers/SchedulerPoolFactory.java @@ -20,7 +20,6 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicReference; -import io.reactivex.internal.util.SuppressAnimalSniffer; import io.reactivex.plugins.RxJavaPlugins; /** @@ -46,7 +45,9 @@ public enum SchedulerPoolFactory { static final AtomicReference PURGE_THREAD = new AtomicReference(); - static final ConcurrentHashMap POOLS = + // Upcast to the Map interface here to avoid 8.x compatibility issues. + // See http://stackoverflow.com/a/32955708/61158 + static final Map POOLS = new ConcurrentHashMap(); /** @@ -63,10 +64,9 @@ public static void start() { next.scheduleAtFixedRate(new Runnable() { @Override - @SuppressAnimalSniffer public void run() { try { - for (ScheduledThreadPoolExecutor e : new ArrayList(POOLS.keySet())) { // CHM.keySet returns KeySetView in Java 8+; false positive here + for (ScheduledThreadPoolExecutor e : new ArrayList(POOLS.keySet())) { if (e.isShutdown()) { POOLS.remove(e); } else {