@SuppressWarnings("unchecked")
  public Future<Void> executeRunnable(final Runnable r) {
    return (Future<Void>) executor.submit(r::run);
  }
@Test
  public void testRunnableFails() throws Exception {
    ExecutorServiceFuturePool futurePool =
        new ExecutorServiceFuturePool(executorService);
    Future<Void> future = futurePool.executeRunnable(() -> {
      throw new IllegalStateException("deliberate");
    });
    interceptFuture(IllegalStateException.class, "deliberate", 30,
        TimeUnit.SECONDS, future);
  }