A bug in camel leads to the situation that a camel route which uses onException to handle exceptions gracefully, does not return to the caller and produces a timeout.
I could track the behaviour down to the class org.switchyard.bus.camel.CamelExchangeBusRouteBuilder which uses a camel try-catch-finally block to handle exceptions for the routing of switchyard services. The finally block consists of two Processors:
Due to a camel bug see #1 only the first processor of a finally block is executed. The second processor, which returns the exchange to the caller, is ommited, as camel thinks some other exception happened.
A possible workaround would be the addition of another processor that removes the Exchange.ERRORHANDLER_HANDLED property from the exchange or the upgrade the version of camel.