Looks like Camel 2.2.0 has fixed the problem. Thanks !

NP-Hard wrote:
> 
> Thanks for the quick response. Here is some more info:
> 
> Camel version: 2.1.0
> ActiveMQ version: 5.3.0
> Java version: 1.6.0_18
> Container: None
> 
> I will try Camel 2.2 and report back.
> 
> 
> Claus Ibsen-2 wrote:
>> 
>> Hi
>> 
>> Could you take a look at this wiki page
>> http://camel.apache.org/support.html
>> 
>> It has a few bullets that is good to mention when posting.
>> 
>> For example what Camel version. And did it work before?
>> eg Windows is especially a bit troublesome with its File system and
>> that is why we have special retries in Camel to cater for Windows not
>> being able to rename, delete or move files as fast as Linux or other
>> OS can do. I recon we have improved that in both 2.1 and 2.2.
>> 
>> You can enable DEBUG logging for org.apache.camel.util.FileUtil to see
>> attempts for that.
>> 
>> 
>> 
>> 
>> On Tue, Feb 23, 2010 at 3:52 PM, NP-Hard <[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> I'm having a problem where Camel is unable to delete a file after
>>> processing
>>> it in a route.
>>> Problem occurs only on WinXP; on Linux it works fine.
>>> My route looks something like this:
>>>
>>> from( "file://foo?delete=true" ).process( proc1 ).recipientList( header(
>>> "xyz" ).tokenize( "," ) );
>>>
>>> Here, proc1.process() adds a header named "xyz" which is a comma
>>> separated
>>> list of ActiveMQ URIs.
>>>
>>> The route kicks in, processes the message but the last step of deleting
>>> the
>>> input file fails with the
>>> stack trace shown below. Changing the file disposition to rename makes
>>> no
>>> difference and it fails
>>> the same way. From the stack trace, it looks like a thread is trying to
>>> do
>>> the delete while another
>>> thread still has the file locked.
>>>
>>> Any help is much appreciated, thanks.
>>>
>>> =================================================================
>>>     [java]
>>> org.apache.camel.component.file.GenericFileOperationFailedException:
>>> Cannot
>>> delete file: GenericFile[five.txt]
>>>     [java]     at
>>> org.apache.camel.component.file.strategy.GenericFileDeletePro
>>> cessStrategy.commit(GenericFileDeleteProcessStrategy.java:59)
>>>     [java]     at
>>> org.apache.camel.component.file.GenericFileOnCompletion.processStrategyCommit(GenericFileOnCompletion.java:125)
>>>     [java]     at
>>> org.apache.camel.component.file.GenericFileOnCompletion.onCompletion(GenericFileOnCompletion.java:85)
>>>     [java]     at
>>> org.apache.camel.component.file.GenericFileOnCompletion.onComplete(GenericFileOnCompletion.java:53)
>>>     [java]     at
>>> org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:131)
>>>     [java]     at
>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:60)
>>>     [java]     at
>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48)
>>>     [java]     at
>>> org.apache.camel.management.InstrumentationProcessor.process(nstrumentationProcessor.java:67)
>>>     [java]     at
>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:201)
>>>     [java]     at
>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:122)
>>>     [java]     at
>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:95)
>>>     [java]     at
>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:108)
>>>     [java]     at
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>     [java]     at
>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>     [java]     at
>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>     [java]     at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>     [java]     at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>     [java]     at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>     [java]     at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>     [java]     at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>     [java]     at java.lang.Thread.run(Thread.java:619)
>>> ========================================================================
>>> --
>>> View this message in context:
>>> http://old.nabble.com/Unable-to-delete-file-after-processing-on-Windows-tp27704464p27704464.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>> 
>> 
>> 
>> -- 
>> Claus Ibsen
>> Apache Camel Committer
>> 
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Unable-to-delete-file-after-processing-on-Windows-tp27704464p27705317.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to