ThreadsProcessor uses rejectedPolicy field to determine if it should set the exception on the exchange.
Unfortunately ThreadsDefinition reads rejectedPolicy only if the latter is set directly on the Threads definition level. If getExecutorServiceRef is set on the ThreadsDefinition, the rejectedPolicy value from the referenced thread pool profile is ignored.
That leads to the situations when task is rejected, but exception is not set on the exchange, because ThreadsProcessor is unaware of the effective rejection policy.
The following configuration demonstrates the issue:
ThreadsProcessor should resolve the rejection policy from the thread pool profile if one is referenced with the ExecutorServiceRef option.