[
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