Stefano Rocca created CAMEL-16103:
-------------------------------------

             Summary: Stack size increases in split with transacted
                 Key: CAMEL-16103
                 URL: https://issues.apache.org/jira/browse/CAMEL-16103
             Project: Camel
          Issue Type: Bug
          Components: camel-core, camel-spring
    Affects Versions: 3.7.1, 3.6.0
         Environment: OS: Windows 10

Java: OpenJDK jdk-8.0.282.8-hotspot

Camel: 3.6.0 and 3.7.1

I'm using camel-spring and Spring version is 5.1.5.RELEASE
            Reporter: Stefano Rocca


Hi,

I have run into an anomalous stack usage with this simple route:

        <route id="split-stack-test" autoStartup="true">
                <from uri="quartz://split-stack-test?cron=0+16+15+?+*+*"/>
                <transacted/>
                <setBody><groovy>(0..499).collect { it }</groovy></setBody>
                <split>
                        <simple>${body}</simple>
                        <setBody><groovy>"${body} 
${Thread.currentThread().getStackTrace().size()}"</groovy></setBody>
                        <log message="STACKTRACE *** ${body}"/>
                </split>
                <to uri="mock:done?retainLast=0"/>
        </route>

As you can see it prints the iteration number and the stack size (limited to 
1024) and the output I get at the end is

STACKTRACE *** 499 1024

(The size of the stack reaches 1024 at 117)

The stack is filled with these calls:

        at 
org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:138)
 ~[camel-spring-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:312)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.processor.MulticastProcessor$MulticastTask.lambda$run$1(MulticastProcessor.java:384)
 ~[camel-core-processor-3.7.1.jar:3.7.1]
        at 
org.apache.camel.util.concurrent.AsyncCompletionService$Task.run(AsyncCompletionService.java:150)
 ~[camel-util-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:55)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.CamelInternalProcessor$AsyncAfterTask.done(CamelInternalProcessor.java:211)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.MDCUnitOfWork$MDCCallback.done(MDCUnitOfWork.java:292)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:138)
 ~[camel-spring-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:312)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.processor.MulticastProcessor$MulticastTask.lambda$run$1(MulticastProcessor.java:384)
 ~[camel-core-processor-3.7.1.jar:3.7.1]
        at 
org.apache.camel.util.concurrent.AsyncCompletionService$Task.run(AsyncCompletionService.java:150)
 ~[camel-util-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.schedule(DefaultReactiveExecutor.java:55)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.CamelInternalProcessor$AsyncAfterTask.done(CamelInternalProcessor.java:211)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.impl.engine.MDCUnitOfWork$MDCCallback.done(MDCUnitOfWork.java:292)
 ~[camel-base-engine-3.7.1.jar:3.7.1]
        at 
org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:138)
 ~[camel-spring-3.7.1.jar:3.7.1]

If I remove transacted, the stack size remains at 15.

STACKTRACE *** 499 15
 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to