Timo Bredehoeft created CAMEL-9634:
--------------------------------------
Summary: Xtokenize with streaming() does not close stream
Key: CAMEL-9634
URL: https://issues.apache.org/jira/browse/CAMEL-9634
Project: Camel
Issue Type: Bug
Components: camel-core
Affects Versions: 2.16.2
Reporter: Timo Bredehoeft
Priority: Minor
Fix For: 2.16.2
If I split a XML-file with xtokenize and streaming() in combination with a
move-option on the file-consumer, I get an exception that the file cannot be
moved. I assume that the stream is not closed or the file is otherwise still
locked.
Simple example route:
from("file:data/xmltest?move=inProcessing/${file:name}")
.split().xtokenize("//order", new Namespaces("",
"")).streaming()
.convertBodyTo(String.class)
.to("file:data/output?fileName=dummy.txt")
.end();
Error stacktrace:
2016-02-23 11:14:46 WARN GenericFileOnCompletion:136 - Error during commit.
Exchange[ID-ZZZZZZZ-52905-1456222481032-0-2][order1.xml]. Caused by:
[org.apache.camel.component.file.GenericFileOperationFailedException - Error
renaming file from D:\data\xmltest\order1.xml to
data\xmltest\inProcessing\order1.xml]
org.apache.camel.component.file.GenericFileOperationFailedException: Error
renaming file from D:\data\xmltest\order1.xml to
data\xmltest\inProcessing\order1.xml
at
org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:81)
at
org.apache.camel.component.file.strategy.GenericFileProcessStrategySupport.renameFile(GenericFileProcessStrategySupport.java:113)
at
org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.commit(GenericFileRenameProcessStrategy.java:88)
at
org.apache.camel.component.file.GenericFileOnCompletion.processStrategyCommit(GenericFileOnCompletion.java:127)
at
org.apache.camel.component.file.GenericFileOnCompletion.onCompletion(GenericFileOnCompletion.java:83)
at
org.apache.camel.component.file.GenericFileOnCompletion.onComplete(GenericFileOnCompletion.java:57)
at
org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(UnitOfWorkHelper.java:104)
at
org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:229)
at
org.apache.camel.util.UnitOfWorkHelper.doneUow(UnitOfWorkHelper.java:65)
at
org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:653)
at
org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:608)
at
org.apache.camel.processor.CamelInternalProcessor$InternalCallback.done(CamelInternalProcessor.java:239)
at
org.apache.camel.processor.CamelInternalProcessor$InternalCallback.done(CamelInternalProcessor.java:250)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:491)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)
at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:442)
at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:214)
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:178)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Renaming file from 'D:\data\xmltest\order1.xml'
to 'data\xmltest\inProcessing\order1.xml' failed: Cannot delete file
'D:\data\xmltest\order1.xml' after copy succeeded
at org.apache.camel.util.FileUtil.renameFileUsingCopy(FileUtil.java:510)
at org.apache.camel.util.FileUtil.renameFile(FileUtil.java:482)
at
org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:78)
... 27 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)