@Override
  public <R> R run(Action<R, C, E> action) throws E, InterruptedException {
    return run(action, retryByDefault);
  }
@Test
  public void testNoRetryingNonRetryableException() {
    try (MockClientPoolImpl mockClientPool =
        new MockClientPoolImpl(2, RetryableException.class, true, 3)) {
      assertThatThrownBy(() -> mockClientPool.run(MockClient::failWithNonRetryable, true))
          .isInstanceOf(NonRetryableException.class);
      assertThat(mockClientPool.reconnectionAttempts()).isEqualTo(0);
    }
  }