We tried to setup a route where some exceptions where caught by the dead letter queue for retry and some exceptions where reported back to the jms message requester in an in-out exchange style request.
There are two problems with this.
First: The dead letter queue is an all or nothing handler. There is currently no way to give some excludes to the handled exceptions.
Second: Exceptions are not serialized and returned by the jms listener on reponse, but instead a camel runtime exception is logged and the jms request thread gets a timeout.
In the attached example the IOException should be returned to the jms:someQueue endpoint as answer to the request. All other exceptions should be handled by the dead letter queue.