[
https://issues.apache.org/jira/browse/CAMEL-19576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hubertus Willuhn updated CAMEL-19576:
-------------------------------------
Description:
We are using SEDA consumers in combination with split expression and thread
pool for processing data. We did an upgrade from Camel 2 to Camel 3 and now
encounter a critical change in behavior.
*Which Camel Versions are affected?*
We tested Camel 3.4.6 to 3.15.0.
*Which Java Versions are affected*
Java 8 (OpenJDK, Oracle) and Java 11 (OpenJDK)
*What is the problem?*
Before upgrading to Camel 3.x, we use routes consuming from seda endpoints,
with a single thread, processing the exchanges. Within the same route, a split
will be used with a custom thread-pool. The expected behavior is, that the seda
thread blocks until the split is done, and will continue down the route to the
end of the route, after the split end. However, this behavior changed with
Camel 3.x, which breaks the routing logic for us, and does not match to the
current documentation of "split" EIP.
The "feature" which seems to be broken is the fact documented for split option
"parallelProcessing" (in
https://camel.apache.org/components/3.20.x/eips/split-eip.html#_options):
_Note the caller thread will still wait until all messages has been fully
processed, before it continues._
I attached a test that should show what the issue is. We would expect that the
test "testSedaThreads" succeeds.
*The question is:*
Are we doing something wrong, is documentation missing or not up to date, or is
this an unwanted behavior?
was:
We are using SEDA consumers in combination with split expression and thread
pool for processing data. We did an upgrade from Camel 2 to Camel 3 and now
encounter a critical change in behavior.
*Which Camel Versions are affected?*
We tested Camel 3.4.6 to 3.15.0.
*Which Java Versions are affected*
Java 8 (OpenJDK, Oracle) and Java 11 (OpenJDK)
*What is the problem?*
Before upgrading to Camel 3.x, we use routes consuming from seda endpoints,
with a single thread, processing the exchanges. Within the same route, a split
will be used with a custom thread-pool. The expected behavior is, that the seda
thread blocks until the split is done, and will continue down the route to the
end of the route, after the split end. However, this behavior changed with
Camel 3.x, which breaks the routing logic for us, and does not match to the
current documentation of "split" EIP.
The "feature" which seems to be broken is the fact documented for split option
"parallelProcessing" (in
https://camel.apache.org/components/3.20.x/eips/split-eip.html#_options):
_"Note the caller thread will still wait until all messages has been fully
processed, before it continues." _
I attached a test that should show what the issue is. We would expect that the
test "testSedaThreads" succeeds.
*The question is:*
Are we doing something wrong, is documentation missing or not up to date, or is
this an unwanted behavior?
> Undocumented Behavior of SEDA Consumer in Combination with Split
> ----------------------------------------------------------------
>
> Key: CAMEL-19576
> URL: https://issues.apache.org/jira/browse/CAMEL-19576
> Project: Camel
> Issue Type: Bug
> Components: camel-core, camel-seda
> Affects Versions: 3.4.6, 3.10.0, 3.15.0
> Reporter: Hubertus Willuhn
> Priority: Major
> Labels: split, thread
> Attachments: SedaThreadingTest.java
>
>
> We are using SEDA consumers in combination with split expression and thread
> pool for processing data. We did an upgrade from Camel 2 to Camel 3 and now
> encounter a critical change in behavior.
> *Which Camel Versions are affected?*
> We tested Camel 3.4.6 to 3.15.0.
> *Which Java Versions are affected*
> Java 8 (OpenJDK, Oracle) and Java 11 (OpenJDK)
> *What is the problem?*
> Before upgrading to Camel 3.x, we use routes consuming from seda endpoints,
> with a single thread, processing the exchanges. Within the same route, a
> split will be used with a custom thread-pool. The expected behavior is, that
> the seda thread blocks until the split is done, and will continue down the
> route to the end of the route, after the split end. However, this behavior
> changed with Camel 3.x, which breaks the routing logic for us, and does not
> match to the current documentation of "split" EIP.
> The "feature" which seems to be broken is the fact documented for split
> option "parallelProcessing" (in
> https://camel.apache.org/components/3.20.x/eips/split-eip.html#_options):
> _Note the caller thread will still wait until all messages has been fully
> processed, before it continues._
> I attached a test that should show what the issue is. We would expect that
> the test "testSedaThreads" succeeds.
> *The question is:*
> Are we doing something wrong, is documentation missing or not up to date, or
> is this an unwanted behavior?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)