Michael Parmeley created CAMEL-23030:
----------------------------------------

             Summary: Streaming splitter with aggregation results in 
StackOverflowError  
                 Key: CAMEL-23030
                 URL: https://issues.apache.org/jira/browse/CAMEL-23030
             Project: Camel
          Issue Type: Bug
         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
         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)

Reply via email to