The problem
The default executor allowed up to Integer.MAX_VALUE threads and used a SynchronousQueue. Under burst load, this permitted excessive thread creation.
The change
The merged diff caps the maximum pool size at Math.max(availableProcessors(), 5) and catches RejectedExecutionException to call onError. The final implementation retains AbortPolicy.
What the tests establish
Added tests check the pool bound and rejection policy, successful responses, I/O failures, and rejected execution reaching the error callback.
Scope matters
The original proposal mentioned CallerRunsPolicy. The merged implementation uses AbortPolicy. No production performance improvement is claimed here.
Inspect the evidence
The public pull request contains the implementation, regression tests, review discussion, and merge status.
Open the merged contribution ↗