* This impl saturates threadpool first, then queue. When both are full caller will get blocked.
*/
private static ForwardingBlockingQueue getQueue(final OptionalInt capacity) {
- final BlockingQueue<Runnable> delegate = capacity.isPresent() ? new LinkedBlockingQueue<>(capacity.getAsInt())
- : new LinkedBlockingQueue<>();
- return new ForwardingBlockingQueue(delegate);
+ return new ForwardingBlockingQueue(
+ capacity.isPresent() ? new LinkedBlockingQueue<>(capacity.orElseThrow()) : new LinkedBlockingQueue<>());
}
@Override
/**
* if the max threads are met, then it will raise a rejectedExecution. We then push to the queue.
*/
- private static class FlexibleRejectionHandler implements RejectedExecutionHandler {
+ private static final class FlexibleRejectionHandler implements RejectedExecutionHandler {
@Override
@SuppressWarnings("checkstyle:parameterName")
public void rejectedExecution(final Runnable r, final ThreadPoolExecutor executor) {
}
}
- private static class ForwardingBlockingQueue
+ private static final class ForwardingBlockingQueue
extends com.google.common.util.concurrent.ForwardingBlockingQueue<Runnable> {
private final BlockingQueue<Runnable> delegate;