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

Willem Jiang commented on CAMEL-2496:
-------------------------------------

Now the cached file will not be deleted before the exchange's routing is 
finished, so you will not got this kind of error anymore.
The file will be deleted when the CachedFileInputStream which is built on this 
file is close and routing is finished.

You can find more information in CAMEL-2776.

> 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
>            Assignee: Willem Jiang
>         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.

Reply via email to