The interface for RejectedExecutionHandler says:
public interface RejectedExecutionHandler {
/**
* Method that may be invoked by a {@link ThreadPoolExecutor} when
* {@link ThreadPoolExecutor#execute execute} cannot accept a
* task. This may occur when no more threads or queue slots are
* available because their bounds would be exceeded, or upon
* shutdown of the Executor.
*
* <p>In the absence of other alternatives, the method may throw
* an unchecked {@link RejectedExecutionException}, which will be
* propagated to the caller of {@code execute}.
*
* @param r the runnable task requested to be executed
* @param executor the executor attempting to execute this task
* @throws RejectedExecutionException if there is no remedy
*/
void rejectedExecution(Runnable r, ThreadPoolExecutor executor);
}
It's the @throws clause that is violated. However, EsAbortPolicy throws an EsRejectedExecutionException which does not inherit from RejectedExecutionException. This leads to situations that commits like 770186f need to remedy. This should be cleaned up, but it's probably not a small task.
The interface for
RejectedExecutionHandlersays:It's the
@throwsclause that is violated. However,EsAbortPolicythrows anEsRejectedExecutionExceptionwhich does not inherit fromRejectedExecutionException. This leads to situations that commits like 770186f need to remedy. This should be cleaned up, but it's probably not a small task.