You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/02/18 15:30:00 UTC

[jira] [Updated] (CAMEL-23030) Streaming splitter with aggregation results in StackOverflowError

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

Claus Ibsen updated CAMEL-23030:
--------------------------------
    Component/s: camel-core

> Streaming splitter with aggregation results in StackOverflowError  
> -------------------------------------------------------------------
>
>                 Key: CAMEL-23030
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23030
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>         Environment: This issues occurs with any JVM version I have tried (17, 21, 24) and it occurs on my Mac OS developer machine as well as a linux vm that runs unit tests.
>            Reporter: Michael Parmeley
>            Priority: Minor
>         Attachments: camel-synchronous-executor-stackoverflow-reproducer.tar.gz
>
>
> We have some routes with a streaming splitter that uses aggregation to group file rows into batches of rows that throws a StackOverflowError on versions of Camel > 4.6.
> I have attached a project with a single unit test in it that recreates the problem. Steps to recreate:
> 1. Extract the attached project: tar xvfz camel-synchronous-executor-stackoverflow-reproducer.tar.gz
> 2. Navigate into the created directory: cd camel-synchronous-executor-stackoverflow-reproducer
> 3. Execute: ./gradlew test
> It comes "out-of-the-box" running with camel 4.17 and it will throw a StackOverFlow error.
> To test against other versions edit `build.gradle` and uncomment/comment the appropriate `camelVersion` declaration. The build.gradle file has comments regarding versions that fail and pass. Although it is any version > 4.6 that fail.
> I looked at the source for AggregationProcessor::onSubmitCompletion() and I do see a difference on how the task is scheduled at the end between 4.6 and 4.7.
> 4.6:
> {code:java}
>  reactiveExecutor.schedule(task);
> {code}
> 4.7:
> {code:java}
>  reactiveExecutor.scheduleSync(task);
> {code}
> It changes further in 4.8 to this:
> {code:java}
>     if (exchange.isTransacted()) {
>                 reactiveExecutor.scheduleQueue(task);
>             } else {
>                 reactiveExecutor.scheduleSync(task);
>             }
> {code}
> I ran my unit test against the very recently released 4.18 and the test still results in a StackOverFlow error.
> Issue https://issues.apache.org/jira/browse/CAMEL-22147 seems similiar although the fix made for that did not fix the issue we are having.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)