public <T> boolean execute(final Predicate<T> predicate, final T arg) {
        do {
            if (predicate.test(arg)) {
                return true;
            }
        } while (!isTimeout());
        return false;
    }
@Test
    void assertExecuteWithNeverTimeout() {
        assertTrue(new RetryExecutor(-1L, 2L).execute(new Predicate<Integer>() {
            
            private int currentCount;
            
            @Override
            public boolean test(final Integer value) {
                return ++currentCount > 10;
            }
        }, null));
    }