Tom Cassimon created CAMEL-17609:
------------------------------------

             Summary: 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


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