Thanks for the clarification, Claus. I had assumed initially that ExceptionHandler was the way to go, but (unsurprisingly) I couldn't find a need way to configure it. Propagating Exceptions into the consumer's processor will do me for now, but I look forward to seeing more development in this area in future.
Thanks, Alex On 22 February 2012 16:57, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Wed, Feb 22, 2012 at 12:02 PM, Alex Anderson <a...@frontlinesms.com> wrote: >> Thanks for the confirmation that this is ok, Claus. Are there any >> other ways to do this within Camel, or would there otherwise need to >> be an external event listener to catch problems within the Endpoint? >> > > There is a ExceptionHandler interface that consumers have by default. > That is usually configured to use the logging implementation. We do > not have exposed an easy way to configure and use a custom > implementation, as well how to configure a specific one in an endpoint > uri. We may do this in the future. > > And we have in the past talked about allowing consumers to send empty > messages with exception into the routing engine, so people can use the > Camel error handler for that. There is an old JIRA ticket for that. > > But in the end it will always be consumer specific how they deal with > initial errors, before they hand over a message to Camel. > > >> Alex >> >> >> On 22 February 2012 13:16, Claus Ibsen <claus.ib...@gmail.com> wrote: >>> On Wed, Feb 22, 2012 at 8:59 AM, Alex Anderson <a...@frontlinesms.com> >>> wrote: >>>> Hi Claus & Tuomas, >>>> >>>> I faced a similar problem a couple of weeks ago and came to the >>>> following solution: >>>> >>>> The exception can be passed to a route in the Consumer like so: >>>> >>>> public void handleEndpointException(EndpointException ex) { >>>> Exchange exchange = getEndpoint().createExchange(); >>>> exchange.setException(ex); >>>> getProcessor().process(exchange); >>>> } >>>> >>>> The exception can then be handled by an onException clause(): >>>> >>>> ...route-definition... >>>> .onException(EndpointException) >>>> .handled(true) >>>> .beanRef("someService", "handleEndpointException") >>>> .end() >>>> >>>> And in someService, I have the following method: >>>> >>>> def handleEndpointException(Exchange ex) { >>>> EndpointException caughtException = (EndpointException) >>>> ex.getProperty(Exchange.EXCEPTION_CAUGHT); >>>> ... >>>> } >>>> >>>> Claus, please tell me if this is foolish! >>>> >>> >>> That is one way of doing it, mind that this requires end users to >>> setup the onException(EndpointException.class) to ensure they handled >>> that. >>> >>> Also it requires your consumers to implement this logic to support >>> this kind of error handling. >>> >>> >>> >>> >>>> Thanks, >>>> >>>> Alex >>>> >>>> >>>> On 22 February 2012 10:42, Claus Ibsen <claus.ib...@gmail.com> wrote: >>>>> Hi >>>>> >>>>> If you mean a consumer, such as eg >>>>> from("file:foo") >>>>> >>>>> Then that would be consumer specific how it validates and reports >>>>> mis-configuration. >>>>> >>>>> You cannot use the onException / dead letter channel for that. As its >>>>> like chicken-egg. You need a valid message in the Camel routing >>>>> engine, before onException / dead letter channel can be used. >>>>> >>>>> >>>>> >>>>> On Wed, Feb 22, 2012 at 8:28 AM, tkatva <tuomas.ka...@gmail.com> wrote: >>>>>> Hello >>>>>> >>>>>> Camel is great but one thing I am wondering is that is there a way to >>>>>> catch >>>>>> a Endpoint exception ? For example if I am polling on a directory and the >>>>>> url is spelled wrong, can I catch that exception programmatically ? Or do >>>>>> just need to check the log for it ? >>>>>> >>>>>> Thank you >>>>>> >>>>>> Best Regards Tuomas Katva >>>>>> >>>>>> -- >>>>>> View this message in context: >>>>>> http://camel.465427.n5.nabble.com/Endpoint-exception-handling-tp5504378p5504378.html >>>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>> >>>>> >>>>> >>>>> -- >>>>> Claus Ibsen >>>>> ----------------- >>>>> FuseSource >>>>> Email: cib...@fusesource.com >>>>> Web: http://fusesource.com >>>>> Twitter: davsclaus, fusenews >>>>> Blog: http://davsclaus.blogspot.com/ >>>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>> >>> >>> >>> -- >>> Claus Ibsen >>> ----------------- >>> FuseSource >>> Email: cib...@fusesource.com >>> Web: http://fusesource.com >>> Twitter: davsclaus, fusenews >>> Blog: http://davsclaus.blogspot.com/ >>> Author of Camel in Action: http://www.manning.com/ibsen/ > > > > -- > Claus Ibsen > ----------------- > FuseSource > Email: cib...@fusesource.com > Web: http://fusesource.com > Twitter: davsclaus, fusenews > Blog: http://davsclaus.blogspot.com/ > Author of Camel in Action: http://www.manning.com/ibsen/