You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Keith Freeman <8f...@gmail.com> on 2013/10/28 18:31:58 UTC

error handler for a seda producer doesn't work?

I'm building my route like this:

    //context.setTracing(true);
    errorHandler(loggingErrorHandler("whatever").level(LoggingLevel.ERROR));
    from("direct:start").log("start:
    ${body}").to("seda:seda1?size=2&blockWhenFull=false").log("after:
    ${body}");

When I run it and send it 3 messages the first 2 log ok (both "start" 
and "after"), but the 3rd message (which fills the seda queue and throws 
a "Queue full" exception) only shows up in a "start" log message, no 
exception is shown or delivered to my test code, and the route just 
shuts down with no ERROR log.

However if I uncomment "context.setTracing(true)", then the 3rd message 
triggers my error handler and its "whatever" log message, along with a 
stack trace, etc.

My understanding is that the "errorHandler(...)" call sets the error 
handler for the entire context.  So why doesn't it get triggered unless 
I turn on tracing?

I've attached the entire junit-4 test.


Re: error handler for a seda producer doesn't work?

Posted by Christian Posta <ch...@gmail.com>.
Great test case, thanks. This is a bug. Can you open a JIRA?




On Mon, Oct 28, 2013 at 10:31 AM, Keith Freeman <8f...@gmail.com> wrote:

>  I'm building my route like this:
>
> //context.setTracing(true);
> errorHandler(loggingErrorHandler("whatever").level(LoggingLevel.ERROR));
> from("direct:start").log("start:
> ${body}").to("seda:seda1?size=2&blockWhenFull=false").log("after: ${body}");
>
> When I run it and send it 3 messages the first 2 log ok (both "start" and
> "after"), but the 3rd message (which fills the seda queue and throws a
> "Queue full" exception) only shows up in a "start" log message, no
> exception is shown or delivered to my test code, and the route just shuts
> down with no ERROR log.
>
> However if I uncomment "context.setTracing(true)", then the 3rd message
> triggers my error handler and its "whatever" log message, along with a
> stack trace, etc.
>
> My understanding is that the "errorHandler(...)" call sets the error
> handler for the entire context.  So why doesn't it get triggered unless I
> turn on tracing?
>
> I've attached the entire junit-4 test.
>
>


-- 
*Christian Posta*
http://www.christianposta.com/blog
twitter: @christianposta