[ 
https://issues.apache.org/jira/browse/CAMEL-14335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

michael elbaz updated CAMEL-14335:
----------------------------------
    Description: 
I'm getting weird comportement when i try to use the original body


{code:java}
    DeadLetterChannelBuilder deadLetterChannelBuilder = new 
DeadLetterChannelBuilder();
    deadLetterChannelBuilder.setRedeliveryPolicy(new 
RedeliveryPolicy().disableRedelivery());
    deadLetterChannelBuilder.useOriginalBody();
{code}

When i start my module for the first time is consuming some data from rabbitmq 
then i don't get the original body (when error happen) but the transformed one 
later when i push the same 'wrong' message (without restarting my module) i 
will get the originalBody

Here the route

{code:java}
from("rabbitmq:foo?queue=foo")
                .routeId("foo")
                // Preserve directory content
                .errorHandler(deadLetterChannel("rabbitmq:dead?queue=dead")
                        .useOriginalBody() // If i use useOriginalMessage() 
instead it will work as expected
                       .onPrepareFailure(exchange -> {
                            Exception exception = 
exchange.getProperty(EXCEPTION_CAUGHT, Exception.class);
                            // ...
                        }))
                .setBody(constant("test"));
{code}

My scenario is: 
# The module not running i pushing to the foo queue some 'wrong' data 
# I start the module
# I get in queue dead the body 'test'
# I push the same 'wrong' data again and this time i get the 'wrong' data in 
dead queue


  was:
I'm getting weird comportement when i try to use the original body


{code:java}
    DeadLetterChannelBuilder deadLetterChannelBuilder = new 
DeadLetterChannelBuilder();
    deadLetterChannelBuilder.setRedeliveryPolicy(new 
RedeliveryPolicy().disableRedelivery());
    deadLetterChannelBuilder.useOriginalBody();
{code}

When i start my module for the first time is consuming some data from rabbitmq 
then i don't get the original body (when error happen) but the transformed one 
later when i push the same 'wrong' message (without restarting my module) i 
will get the originalBody

Here the route

{code:java}
from("rabbitmq:foo?queue=foo")
                .routeId("foo")
                // Preserve directory content
                .errorHandler(deadLetterChannel("rabbitmq:dead?queue=dead")
                        .useOriginalBody() // If i use useOriginalMessage() 
instead it will work as expected
                       .onPrepareFailure(exchange -> {
                            Exception exception = 
exchange.getProperty(EXCEPTION_CAUGHT, Exception.class);
                            // ...
                        }))
                .setBody(constant("test"));
{code}

# My scenario is my module not running i pushing to the foo queue some 'wrong' 
data 
# I start my module
# I get in queue dead the body 'test'
# I push the same 'wrong' data again and this time i get the 'wrong' data in 
dead queue



> Configuring DLQ
> ---------------
>
>                 Key: CAMEL-14335
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14335
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 3.0.0
>            Reporter: michael elbaz
>            Priority: Major
>
> I'm getting weird comportement when i try to use the original body
> {code:java}
>     DeadLetterChannelBuilder deadLetterChannelBuilder = new 
> DeadLetterChannelBuilder();
>     deadLetterChannelBuilder.setRedeliveryPolicy(new 
> RedeliveryPolicy().disableRedelivery());
>     deadLetterChannelBuilder.useOriginalBody();
> {code}
> When i start my module for the first time is consuming some data from 
> rabbitmq then i don't get the original body (when error happen) but the 
> transformed one later when i push the same 'wrong' message (without 
> restarting my module) i will get the originalBody
> Here the route
> {code:java}
> from("rabbitmq:foo?queue=foo")
>                 .routeId("foo")
>                 // Preserve directory content
>                 .errorHandler(deadLetterChannel("rabbitmq:dead?queue=dead")
>                         .useOriginalBody() // If i use useOriginalMessage() 
> instead it will work as expected
>                        .onPrepareFailure(exchange -> {
>                             Exception exception = 
> exchange.getProperty(EXCEPTION_CAUGHT, Exception.class);
>                             // ...
>                         }))
>                 .setBody(constant("test"));
> {code}
> My scenario is: 
> # The module not running i pushing to the foo queue some 'wrong' data 
> # I start the module
> # I get in queue dead the body 'test'
> # I push the same 'wrong' data again and this time i get the 'wrong' data in 
> dead queue



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to