The bug occured in the 2.6.0 version of Camel I'm using. I haven't test it against the latest version but I've checked the sources and it doesn't seem to have change since.
Given a camel route, with a onException clause like this :
MyException is a customed exception like this :
What I've observed is that when BeanExpression.OgnlInvokeProcessor.process iterate through the methods to calls, it does :
It successfully invoke the method : invoke.process(resultExchange);
But it checks for exception in the exchange. Since we are in an exception clause, there is an actual exception (thrown by the application, but unrelated with the expression language search) and it fails
There is a simple workaround for that : writing his own predicate class to test wanted conditions