### Question:
ClientPool implements Closeable { public <R> R run(Action<R, C, E> action) throws E, InterruptedException { C client = get(); try { return action.run(client); } catch (Exception exc) { if (reconnectExc.isInstance(exc)) { try { client = reconnect(client); } catch (Exception ignored) { throw reconnectExc.cast(exc); } return action.run(client); } throw exc; } finally { release(client); } } ClientPool(int poolSize, Class<? extends E> reconnectExc); R run(Action<R, C, E> action); @Override void close();  }### Answer:
@Test(expected = RuntimeException.class) public void testNewClientFailure() throws Exception { try (MockClientPool pool = new MockClientPool(2, Exception.class)) { pool.run(Object::toString); } }