[
https://issues.apache.org/activemq/browse/CAMEL-860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
dario sanna reopened CAMEL-860:
-------------------------------
The fix does not work, the property is not set.
Example code :
from("file:/data").convertBodyTo(String.class)
.errorHandler(deadLetterChannel("myjms:dead").maximumRedeliveries(2).useExponentialBackOff())
.setHeader("xyz", xquery("wrong xquery {}").asString())
.to("direct:blabla");
The use case is:
in case of an exchange-failure, the cause should be visible in the
dead-letter-channel, for later investigate.
> DeadLetterChannel does not set the EXCEPTION_CAUSE_PROPERTY
> -----------------------------------------------------------
>
> Key: CAMEL-860
> URL: https://issues.apache.org/activemq/browse/CAMEL-860
> Project: Apache Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 1.4.0
> Environment: Windows XP, JDK 6
> Reporter: dario sanna
> Assignee: Claus Ibsen
> Fix For: 1.5.0
>
> Original Estimate: 5 minutes
> Remaining Estimate: 5 minutes
>
> The DeadLetterChannel does not set the EXCEPTION_CAUSE_PROPERTY.
> It looks like a bug in the method:
> public boolean process(final Exchange exchange, final AsyncCallback callback,
> final RedeliveryData data)
> The property is set by getting the Exception from the exchange:
> exchange.setProperty(EXCEPTION_CAUSE_PROPERTY, exchange.getException());
> but several lines before the Exception ist set to null in exchange:
> if (exchange.getException() != null) {
> Throwable e = exchange.getException();
> exchange.setException(null); // Reset it since we are
> handling it.
> to fix the bug, i think it is simply done by preserving the Throwable like
> this
> Throwable e = exchange.getException();
> if (exchange.getException() != null) {
> exchange.setException(null); // Reset it since we are
> handling it.
> ...
> exchange.setProperty(EXCEPTION_CAUSE_PROPERTY, e);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.