Hi, I am using Camel 2.6.0 and have a very simple file based route from a single input dir to a single output dir, with processors connected to both routes. In my specific use case an exception raised in a processor is not necessarily fatal and I do not want the stack trace information to get logged.
The problem is even when I configure a global defaultErrorHandler and set logStackTrace to false, when GenericFileOnCompletion catches an exception from my processors, it uses its own internally configured LoggingExceptionHandler as well and belches out an undesired stack trace. Am I simply missing a configuration step here? How can I override GenericFileOnCompletion's automatic use of LoggingExceptionHandler or configure it to not emit stack traces? This seems like something really simple that I must have overlooked, however I searched the docs and mailing lists and haven't been able to find any more clues. Below is my simple route which exhibits the behavior: errorHandler(defaultErrorHandler().logStackTrace(false).logRetryStackTrace(false)); // set up a listener on the inbound file component from("file://in").process(new Processor() { public void process(Exchange e) throws Exception { System.out.println("Received IN exchange: " + e.getIn()); } }).to("file://out"); // set up a listener on the outbound file component from("file://out").process(new Processor() { public void process(Exchange e) throws Exception { System.out.println("Received OUT exchange: " + e.getIn()); throw new Exception("Trouble!"); } }); Here is the stacktrace generated: [java] 2011-03-10 14:29:09,285 INFO impl.DefaultCamelContext [main,start:1293] Apache Camel 2.6.0 (CamelContext: camel-1) is starting [java] 2011-03-10 14:29:09,287 INFO impl.DefaultCamelContext [main,createManagementStrategy:2239] JMX enabled. Using ManagedManagementStrategy. [java] 2011-03-10 14:29:09,792 INFO converter.AnnotationTypeConverterLoader [main,load:80] Found 4 packages with 15 @Converter classes to load [java] 2011-03-10 14:29:09,835 INFO converter.DefaultTypeConverter [main,loadTypeConverters:408] Loaded 150 type converters in 0.368 seconds [java] 2011-03-10 14:29:10,085 INFO impl.DefaultCamelContext [main,doStartOrResumeRouteConsumers:1860] Route: route1 started and consuming from: Endpoint[file://in] [java] 2011-03-10 14:29:10,090 INFO impl.DefaultCamelContext [main,doStartOrResumeRouteConsumers:1860] Route: route2 started and consuming from: Endpoint[file://out] [java] 2011-03-10 14:29:10,090 INFO impl.DefaultCamelContext [main,start:1310] Total 2 routes, of which 2 is started. [java] 2011-03-10 14:29:10,091 INFO impl.DefaultCamelContext [main,start:1311] Apache Camel 2.6.0 (CamelContext: camel-1) started in 0.805 seconds [java] Received IN exchange: ID-AREA-51-51907-1299796149129-0-1 [java] Received OUT exchange: ID-AREA-51-51839-1299794138999-0-1 [java] Received IN exchange: ID-AREA-51-51907-1299796149129-0-2 [java] 2011-03-10 14:29:11,096 ERROR file.GenericFileOnCompletion [Camel (camel-1) thread #1 - file://out,log:249] Caused by: [java.lang.Exception - Trouble!] [java] java.lang.Exception: Trouble! [java] at edu.isi.misd.dcmroute.DummyRoute$2.process(DummyRoute.java:54)[file:/D:/src/dcmtools/trunk/dcmroute/build/classes/:] [java] at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:269)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:330)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:157)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)[camel-core-2.6.0.jar:2.6.0] [java] at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)[camel-core-2.6.0.jar:2.6.0] [java] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_20] [java] at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)[:1.6.0_20] [java] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)[:1.6.0_20] [java] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)[:1.6.0_20] [java] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)[:1.6.0_20] [java] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)[:1.6.0_20] [java] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_20] [java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_20] [java] at java.lang.Thread.run(Thread.java:619)[:1.6.0_20] [java] 2011-03-10 14:29:11,099 WARN file.GenericFileOnCompletion [Camel (camel-1) thread #1 - file://out,processStrategyRollback:161] Rollback file strategy: org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@8ab708 for file: GenericFile[ID-AREA-51-51839-1299794138999-0-1] [java] 2011-03-10 14:29:11,100 ERROR processor.DefaultErrorHandler [Camel (camel-1) thread #1 - file://out,log:203] Failed delivery for exchangeId: ID-AREA-51-51907-1299796149129-0-7. Exhausted after delivery attempt: 1 caught: java.lang.Exception: Trouble! The last two log entries behave as expected based on errorHandler(defaultErrorHandler().logStackTrace(false).logRetryStackTrace(false)) - what I would like is that the initial ERROR from GenericFileOnCompletion behaves the same way as well. I know it seems like a pretty minor issue, but it would be really great for my application to not have such a large log file generated because of a unnecessary stack trace that gets generated every time a retry of my file processor happens. All that being said, this is my first time using Camel and I have to say it is pretty awesome. Thanks and best regards, Mike -- View this message in context: http://camel.465427.n5.nabble.com/How-can-I-disable-stack-traces-from-GenericFileOnCompletion-s-LoggingExceptionHandler-tp3424278p3424278.html Sent from the Camel - Users mailing list archive at Nabble.com.