Tracing of exceptions
---------------------
Key: CAMEL-4636
URL: https://issues.apache.org/jira/browse/CAMEL-4636
Project: Camel
Issue Type: Improvement
Components: camel-core
Affects Versions: 2.6.0
Reporter: Alfred Hiebl
When a bean in a traced route throws an exception (e.g. NullPointerException)
one would expect to see that in the causedByException property of the
DefaultTraceEventMessage. But the exception is null.
The reason is that in DefaultTraceEventMessage the causedByException is set to
exchange.getException(), at a time where it is already handled. The exception
is still available as property Exchange.EXCEPTION_CAUGHT.
Suggestion for change:
{code}
public DefaultTraceEventMessage(final Date timestamp, final
ProcessorDefinition<?> toNode, final Exchange exchange) {
this.tracedExchange = exchange;
...
this.causedByException = exchange.getException() != null ?
exchange.getException().toString()
: extractExceptionCaught(exchange);
}
// used to set causedByException in cases where the exception is already
handled
private static String extractExceptionCaught(Exchange exchange) {
Exception exceptionCaught = (Exception)
exchange.getProperty(Exchange.EXCEPTION_CAUGHT);
return (exceptionCaught != null ? exceptionCaught.toString() : null);
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira