[ 
https://issues.apache.org/jira/browse/CAMEL-6377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13721927#comment-13721927
 ] 

Claus Ibsen edited comment on CAMEL-6377 at 7/28/13 1:12 PM:
-------------------------------------------------------------

SendProcessor optimization *done*

*before*
{code}
2013-07-28 11:02:39,230 [ - seda://start] INFO  ngSendProcessorTest$MyProducer 
- There are 16 lines in the stacktrace
2013-07-28 11:02:39,231 [ - seda://start] ERROR ngSendProcessorTest$MyProducer 
- Dump stacktrace to log
java.lang.IllegalArgumentException: Forced to dump stacktrace
        at 
org.apache.camel.processor.ReduceStacksNeededDuringRoutingSendProcessorTest$MyProducer.process(ReduceStacksNeededDuringRoutingSendProcessorTest.java:102)
        at 
org.apache.camel.processor.SendProcessor$1.doInAsyncProducer(SendProcessor.java:101)
        at 
org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:298)
        at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:96)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
        at 
org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:293)
        at 
org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:202)
        at 
org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:149)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
{code}

*after*
{code}
2013-07-28 11:09:56,882 [ - seda://start] INFO  ngSendProcessorTest$MyProducer 
- There are 14 lines in the stacktrace
2013-07-28 11:09:56,884 [ - seda://start] ERROR ngSendProcessorTest$MyProducer 
- Dump stacktrace to log
java.lang.IllegalArgumentException: Forced to dump stacktrace
        at 
org.apache.camel.processor.ReduceStacksNeededDuringRoutingSendProcessorTest$MyProducer.process(ReduceStacksNeededDuringRoutingSendProcessorTest.java:102)
        at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:99)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
        at 
org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:293)
        at 
org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:202)
        at 
org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:149)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
{code}
                
      was (Author: davsclaus):
    SendProcessor optimization 

*before*
{code}
2013-07-28 11:02:39,230 [ - seda://start] INFO  ngSendProcessorTest$MyProducer 
- There are 16 lines in the stacktrace
2013-07-28 11:02:39,231 [ - seda://start] ERROR ngSendProcessorTest$MyProducer 
- Dump stacktrace to log
java.lang.IllegalArgumentException: Forced to dump stacktrace
        at 
org.apache.camel.processor.ReduceStacksNeededDuringRoutingSendProcessorTest$MyProducer.process(ReduceStacksNeededDuringRoutingSendProcessorTest.java:102)
        at 
org.apache.camel.processor.SendProcessor$1.doInAsyncProducer(SendProcessor.java:101)
        at 
org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:298)
        at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:96)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
        at 
org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:293)
        at 
org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:202)
        at 
org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:149)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
{code}

*after*
{code}
2013-07-28 11:09:56,882 [ - seda://start] INFO  ngSendProcessorTest$MyProducer 
- There are 14 lines in the stacktrace
2013-07-28 11:09:56,884 [ - seda://start] ERROR ngSendProcessorTest$MyProducer 
- Dump stacktrace to log
java.lang.IllegalArgumentException: Forced to dump stacktrace
        at 
org.apache.camel.processor.ReduceStacksNeededDuringRoutingSendProcessorTest$MyProducer.process(ReduceStacksNeededDuringRoutingSendProcessorTest.java:102)
        at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:99)
        at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
        at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:192)
        at 
org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:293)
        at 
org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:202)
        at 
org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:149)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
{code}
                  
> Optimize routing engine to reduce stack frames in use during routing and 
> reduce callbacks
> -----------------------------------------------------------------------------------------
>
>                 Key: CAMEL-6377
>                 URL: https://issues.apache.org/jira/browse/CAMEL-6377
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.12.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>             Fix For: 2.12.0
>
>
> We can optimize the Camel routing engine internally, and redue the need for 
> wrapping processors (those internally used for cross cutting functionality) 
> where they would wrap each other one by one; which then results in larger 
> call stacks during routing.
> This also shows to end users when stacktraces is being logged etc, as they 
> tend to be a bit longer with many internal calls.
> Though the JVM optimizes this at runtime as it can inline the calls and 
> whatnot. But the stacktraces is still shown expanded.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to