@Test
@SuppressFBWarnings("SIC_INNER_SHOULD_BE_STATIC_ANON")
public void testSuppression() throws InterruptedException, IOException, TimeoutException  {

  long startTime = System.currentTimeMillis();
  Integer result = Callables.executeWithRetry(new TimeoutCallable<Integer, IOException>(60000) {
    private int count;
    @Override
    public Integer call(final long deadline) throws IOException {
      count++;
      if (count < 15) {
        throw new SocketException("Aaaaaaaaaaa" + count);
      }
      return 1;
    }
  }, 1, 20, new AdvancedRetryPredicate<Exception>() {
    @Override
    public AdvancedAction apply(final Exception input) {
      return AdvancedAction.RETRY;
    }
  }, IOException.class);
  long elapsedTime = System.currentTimeMillis() - startTime;
  Assert.assertEquals(1L, result.longValue());
  Assert.assertTrue("Operation has to take at least 10 ms and not " + elapsedTime, elapsedTime > 10L);
}