[ 
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.

Reply via email to