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

Tom Cassimon updated CAMEL-17609:
---------------------------------
    Description: 
I'm working on an update of the camel library version used to the latest LTS 
release (3.14.1), but it seems to have broken my tests that are using 
transacted.

I have a simple test route which reads in a file, parses the content using 
bindy and sending the validated parts to a jms queue.
{code:java}
from("inputFile:///temp/testing/input2/")
    .autoStartup(true)
    .transacted()
    .unmarshal(format)
    .split(body())
        .to("bean-validator:x")
        .to("direct:sendMessage2")
    .end()
.end();

from("direct:sendMessage2")
    .convertBodyTo(String.class)
    .to("jms://be.test.output")
.end(); {code}
If one of the parts of the file doesn't pass the validation rules, the test 
expects to find no messages on the queue.

This used to work in camel-3.7.x, but now in camel 3.14.1 messages do appear on 
the queue, even when parts of the file failed the validation.

In the migration guide of 3.12 -> 3.13 is an entry about transactions, but it 
is not clear to me if this is related.

Upon further investigation the split() seems to cause the issue with the 
transactionality, if i put 2 posts to jms inline in the route and throw an 
exception before the second post the result is no messages on the queue.

Do i have to add something to the split to allow the transaction to propagate?

  was:
I'm working on an update of the camel library version used to the latest LTS 
release (3.14.1), but it seems to have broken my tests that are using 
transacted.

I have a simple test route which reads in a file, parses the content using 
bindy and sending the validated parts to a jms queue.
{code:java}
from("inputFile:///temp/testing/input2/")
    .autoStartup(true)
    .transacted()
    .unmarshal(format)
    .split(body())
        .to("bean-validator:x")
        .to("direct:sendMessage2")
    .end()
.end();

from("direct:sendMessage2")
    .convertBodyTo(String.class)
    .to("jms://be.test.output")
.end(); {code}
{{}}

If one of the parts of the file doesn't pass the validation rules, the test 
expects to find no messages on the queue.

This used to work in camel-3.7.x, but now in camel 3.14.1 messages do appear on 
the queue, even when parts of the file failed the validation.

In the migration guide of 3.12 -> 3.13 is an entry about transactions, but it 
is not clear to me if this is related.

Upon further investigation the split() seems to cause the issue with the 
transactionality, if i put 2 posts to jms inline in the route and throw an 
exception before the second post the result is no messages on the queue.

Do i have to add something to the split to allow the transaction to propagate?


> camel-core - Problem with transacted routes
> -------------------------------------------
>
>                 Key: CAMEL-17609
>                 URL: https://issues.apache.org/jira/browse/CAMEL-17609
>             Project: Camel
>          Issue Type: Bug
>          Components: came-core
>    Affects Versions: 3.14.1
>            Reporter: Tom Cassimon
>            Priority: Major
>
> I'm working on an update of the camel library version used to the latest LTS 
> release (3.14.1), but it seems to have broken my tests that are using 
> transacted.
> I have a simple test route which reads in a file, parses the content using 
> bindy and sending the validated parts to a jms queue.
> {code:java}
> from("inputFile:///temp/testing/input2/")
>     .autoStartup(true)
>     .transacted()
>     .unmarshal(format)
>     .split(body())
>         .to("bean-validator:x")
>         .to("direct:sendMessage2")
>     .end()
> .end();
> from("direct:sendMessage2")
>     .convertBodyTo(String.class)
>     .to("jms://be.test.output")
> .end(); {code}
> If one of the parts of the file doesn't pass the validation rules, the test 
> expects to find no messages on the queue.
> This used to work in camel-3.7.x, but now in camel 3.14.1 messages do appear 
> on the queue, even when parts of the file failed the validation.
> In the migration guide of 3.12 -> 3.13 is an entry about transactions, but it 
> is not clear to me if this is related.
> Upon further investigation the split() seems to cause the issue with the 
> transactionality, if i put 2 posts to jms inline in the route and throw an 
> exception before the second post the result is no messages on the queue.
> Do i have to add something to the split to allow the transaction to propagate?



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to