[ https://issues.apache.org/jira/browse/CAMEL-4636?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13145348#comment-13145348 ]
Alfred Hiebl commented on CAMEL-4636: ------------------------------------- See also Camel-Users thread http://camel.465427.n5.nabble.com/Tracing-exceptions-td4964120.html > 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