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

Claus Ibsen resolved CAMEL-16103.
---------------------------------
    Resolution: Fixed

> 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.6.0, 3.7.1
>         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
>            Assignee: Claus Ibsen
>            Priority: Major
>             Fix For: 3.8.0
>
>
> 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/>
> <!-- creates a list of 500 integers -->
>               <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
> If I run this route in camel 2.22.1 at the end I see this (transacted is 
> present!):
> STACKTRACE *** 499 51
>  



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

Reply via email to