Hi Willem, and thx for this super-fast response! I'm looking at your fix here:
https://fisheye6.atlassian.com/changelog/camel?cs=1150651 and wonder, whether it's really necessary to sync on routeContext in the pushRouteContext() method? cheers, Matthias Matthias Schmidt | Senior Software Engineer | Development & Delivery InterComponentWare AG | Altrottstraße 31 | 69190 Walldorf (Baden) | Germany Tel.: +49 (0) 6227 385 333 81 | Fax: +49 (0) 6227 385 471 m.schm...@icw.de | www.icw.de From: Willem Jiang <willem.ji...@gmail.com> To: users@camel.apache.org Date: 25.07.2011 12:04 Subject: Re: EmptyStackException in DefaultUnitOfWork.popRouteContext() Hi, It looks like an bug of DefaultUnitOfWork, I just create a JIRA[1] for it and will commit a quick fix for it. Thanks for reporting this. [1]https://issues.apache.org/jira/browse/CAMEL-4264 On 7/25/11 4:59 PM, m.schm...@icw.de wrote: > Hi *, > > we're seeing the exception below happening randomly under load. It stems > from > > org/apache/camel/impl/DefaultUnitOfWork.java: > > public RouteContext popRouteContext() { > if (routeContextStack.isEmpty()) { > return null; > } > return routeContextStack.pop(); > } > > It seems the stack gets empty inbetween the empty-check and the pop > operation. > > What about doing something like this, to prevent this inconsistency: > > public RouteContext popRouteContext() { > synchronized (routeContextStack) { > if (routeContextStack.isEmpty()) { > return null; > } > return routeContextStack.pop(); > } > } > > should i file a JIRA issue for this? > > cheers, > > Matthias > > > java.util.EmptyStackException > at java.util.Stack.peek(Stack.java:85) > at java.util.Stack.pop(Stack.java:67) > at > org.apache.camel.impl.DefaultUnitOfWork.popRouteContext(DefaultUnitOfWork.java:226) > at > org.apache.camel.processor.DefaultChannel$1.done(DefaultChannel.java:260) > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330) > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) > at > org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:143) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:78) > at > org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:113) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85) > at > org.apache.camel.processor.aggregate.AggregateProcessor$1.run(AggregateProcessor.java:397) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > > > > > > Matthias Schmidt | Senior Software Engineer | Development& Delivery > InterComponentWare AG | Altrottstraße 31 | 69190 Walldorf (Baden) | > Germany > Tel.: +49 (0) 6227 385 333 81 | Fax: +49 (0) 6227 385 471 > m.schm...@icw.de | www.icw.de > > > > > > > > > InterComponentWare AG: > Vorstand: Peter Kirschbauer (Vors.), Jörg Stadler > Aufsichtsratsvors.: Prof. Dr. Christof Hettich > Firmensitz: 69190 Walldorf, Altrottstraße 31 > AG Mannheim HRB 351761 / USt.-IdNr.: DE 198388516 -- Willem ---------------------------------- FuseSource Web: http://www.fusesource.com Blog: http://willemjiang.blogspot.com (English) http://jnn.javaeye.com (Chinese) Twitter: willemjiang Weibo: willemjiang InterComponentWare AG: Vorstand: Peter Kirschbauer (Vors.), Jörg Stadler Aufsichtsratsvors.: Prof. Dr. Christof Hettich Firmensitz: 69190 Walldorf, Altrottstraße 31 AG Mannheim HRB 351761 / USt.-IdNr.: DE 198388516