You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2010/03/01 17:05:44 UTC

[jira] Commented: (CAMEL-2496) StreamCache/Splitter race condition

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

Claus Ibsen commented on CAMEL-2496:
------------------------------------

I think we should use the new HawtDB as file based stream cache in the future. 

It got all the bells and whistles to be fast and leverages NIO and memory mapped IO and whatnot.
But that can be done when we overhaul stream caching in 2.x, once we get the time for that :)

> StreamCache/Splitter race condition
> -----------------------------------
>
>                 Key: CAMEL-2496
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2496
>             Project: Apache Camel
>          Issue Type: Bug
>    Affects Versions: 1.6.2
>            Reporter: Stan Lewis
>         Attachments: test-case.txt
>
>
> Attached patch introduces a test that shows the following symptom:
> org.apache.camel.RuntimeCamelException: java.io.FileNotFoundException: /var/folders/vC/vCA487MkHEeSaIu9LmlkrU+++TI/-Tmp-/camel-tmp-627613/cos3755307044377901165.tmp (No such file or directory)
> org.apache.camel.RuntimeCamelException: java.io.FileNotFoundException: /var/folders/vC/vCA487MkHEeSaIu9LmlkrU+++TI/-Tmp-/camel-tmp-627613/cos3755307044377901165.tmp (No such file or directory)
> 	at org.apache.camel.converter.stream.FileInputStreamCache.reset(FileInputStreamCache.java:52)
> 	at org.apache.camel.converter.stream.StreamCacheConverter$StreamSourceCache.reset(StreamCacheConverter.java:126)
> 	at org.apache.camel.util.MessageHelper.resetStreamCache(MessageHelper.java:105)
> 	at org.apache.camel.builder.xml.XPathBuilder.getDocument(XPathBuilder.java:548)
> 	at org.apache.camel.builder.xml.XPathBuilder.evaluateAs(XPathBuilder.java:428)
> 	at org.apache.camel.builder.xml.XPathBuilder.evaluate(XPathBuilder.java:118)
> 	at org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:72)
> 	at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:155)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:80)
> 	at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:189)
> 	at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:133)
> 	at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.proceed(StreamCachingInterceptor.java:87)
> 	at org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:82)
> 	at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:52)
> 	at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:72)
> 	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:637)
> I believe it must be a race condition when several threads are passing through the splitter, in the above case I'm using a seda queue with 5 threads.  Am logging this now as I'm not sure what time I'll have to investigate further this week.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.