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