if (!executor.awaitTermination(timeoutValue, timeoutUnits)) {
executor.shutdownNow();
throw new IllegalStateException("Timeout waiting for concurrent jobs to complete.");
}
} catch (InterruptedException e) {
throw new UncheckedException(e);
}
exceptionListener.stop();
} finally {
executors.remove(this);
}