@Test(expected = TimeoutException.class)
public void testExceptionPropagation2() throws InterruptedException, TimeoutException {

  Callables.executeWithRetry(new TimeoutCallable<Integer, RuntimeException>(3000) {
    @Override
    public Integer call(final long deadline) throws TimeoutException {
      throw new TimeoutException();
    }
  }, 3, 10, RuntimeException.class);
}