@Override
    public void execute(Runnable command) {
        try {
            super.execute(command);
        } catch (RejectedExecutionException e) {
            metric.reportRejectRequest();
            long timeSinceLastReturnedThreadMillis = System.currentTimeMillis() - wrapped.lastThreadAssignmentTimeMillis;
            if (timeSinceLastReturnedThreadMillis > maxThreadExecutionTimeMillis)
                processTerminator.logAndDie("No worker threads have been available for " +
                        timeSinceLastReturnedThreadMillis + " ms. Shutting down.", true);
            throw e;
        }
    }
Tracks all instances of {@link RejectedExecutionException}.
{@link ContainerThreadPool} returns an executor, so external uses will not
have access to the methods declared by {@link ExecutorService}.
({@link Executor#execute(Runnable)} is declared by {@link Executor}.)
container-core/src/main/java/com/yahoo/container/handler/threadpool/ExecutorServiceWrapper.java