@PrivateApi
    public static <V> Collection<V> returnWithDeadline(Collection<Future<V>> futures, long timeout, TimeUnit timeUnit) {
        return returnWithDeadline(futures, timeout, timeUnit, IGNORE_ALL_EXCEPT_LOG_MEMBER_LEFT);
    }
@Test(expected = TimeoutException.class)
    public void test_returnWithDeadline_timeout_exception() {
        AtomicBoolean waitLock = new AtomicBoolean(true);

        List<Future<Integer>> futures = new ArrayList<>();
        for (int i = 0; i < 2; i++) {
            Future<Integer> submit = (Future<Integer>) executorService.submit(new TimeoutingTask(waitLock));
            futures.add(submit);
        }

        returnWithDeadline(futures, 1, TimeUnit.SECONDS, new ExceptionHandler() {
            @Override
            public void handleException(Throwable throwable) {
                if (throwable instanceof TimeoutException) {
                    ExceptionUtil.sneakyThrow(throwable);
                }
                throw ExceptionUtil.rethrow(throwable);
            }
        });
    }