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)