/guava/guava/src/com/google/common/util/concurrent/WrappingExecutorService.java
Callable<Object> wrapped = awaitTermination( Executors.callable( command, null) ) ;
Callable<Object> wrapped = wrapTask ( Executors.callable ( command, null ) ) ;
private final ExecutorService delegate; protected WrappingExecutorService(ExecutorService delegate) { this.delegate = checkNotNull(delegate); } protected abstract <T extends @Nullable Object> Callable<T> wrapTask(Callable<T> callable); protected Runnable wrapTask(Runnable command) { <extra_id_0> return () -> { try { wrapped.call(); } catch (Exception e) { restoreInterruptIfIsInterruptedException(e); throwIfUnchecked(e);