You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "hisao furuichi (JIRA)" <ji...@apache.org> on 2019/07/02 08:56:00 UTC
[jira] [Commented] (CAMEL-13680) camel-file - From file to file
with readLock=fileLock dont work on windows
[ https://issues.apache.org/jira/browse/CAMEL-13680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876789#comment-16876789 ]
hisao furuichi commented on CAMEL-13680:
----------------------------------------
Hello [~davsclaus],
I realized that the fix was not enough for this issue.
org.apache.camel.component.file.FileOperations.writeFileByFile() was OK now, but we also need to fix org.apache.camel.component.file.FileOperations.renameFile() and org.apache.camel.util.FileUtil class's methods to avoid to use java.nio.file.Files.copy() method.
Please take a look at this stack trace to get an idea about it. (Sorry it's not 3.0.x, but I hope it still helps)
{code:java}
[ead #4 - file://work/cbr/input] GenericFileOnCompletion WARN Error during commit. Exchange[ID-WIN-JTA8KU4EF9D-1562055372761-0-1]. Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - Error renaming file from C:\Users\Administrator\workspace\FuseReproducer\work\cbr\input\ID-WIN-JTA8KU4EF9D-1562029860727-1-2 to work\cbr\input\.camel\ID-WIN-JTA8KU4EF9D-1562029860727-1-2]
org.apache.camel.component.file.GenericFileOperationFailedException: Error renaming file from C:\Users\Administrator\workspace\FuseReproducer\work\cbr\input\ID-WIN-JTA8KU4EF9D-1562029860727-1-2 to work\cbr\input\.camel\ID-WIN-JTA8KU4EF9D-1562029860727-1-2
at org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:85)
at org.apache.camel.component.file.strategy.GenericFileProcessStrategySupport.renameFile(GenericFileProcessStrategySupport.java:128)
at org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.commit(GenericFileRenameProcessStrategy.java:111)
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:59)
at org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(UnitOfWorkHelper.java:104)
at org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:243)
at org.apache.camel.util.UnitOfWorkHelper.doneUow(UnitOfWorkHelper.java:65)
at org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:685)
at org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:634)
at org.apache.camel.processor.CamelInternalProcessor$InternalCallback.done(CamelInternalProcessor.java:251)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:127)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:454)
at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:223)
at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:187)
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.nio.file.FileSystemException: C:\Users\Administrator\workspace\FuseReproducer\work\cbr\input\ID-WIN-JTA8KU4EF9D-1562029860727-1-2 -> work\cbr\input\.camel\ID-WIN-JTA8KU4EF9D-1562029860727-1-2: The process cannot access the file because it is being used by another process
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileCopy.copy(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.copy(Unknown Source)
at java.nio.file.Files.copy(Unknown Source)
at org.apache.camel.util.FileUtil.copyFile(FileUtil.java:541)
at org.apache.camel.util.FileUtil.renameFileUsingCopy(FileUtil.java:525)
at org.apache.camel.util.FileUtil.renameFile(FileUtil.java:499)
at org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:82)
... 25 more
{code}
> camel-file - From file to file with readLock=fileLock dont work on windows
> --------------------------------------------------------------------------
>
> Key: CAMEL-13680
> URL: https://issues.apache.org/jira/browse/CAMEL-13680
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 3.0.0, 3.0.0.M4
>
>
> You can get errors like
> {code}
> Stacktrace
> ---------------------------------------------------------------------------------------------------------------------------------------
> org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: work\cbr\output\ID-WIN-JTA8KU4EF9D-1561426618994-0-2
> at org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:352)
> at org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:305)
> at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:169)
> at org.apache.camel.component.file.GenericFileProducer.process(GenericFileProducer.java:80)
> at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
> at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148)
> at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
> at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
> at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
> at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:452)
> at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:219)
> at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:183)
> 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.nio.file.FileSystemException: work\cbr\input\ID-WIN-JTA8KU4EF9D-1561426618994-0-2 -> work\cbr\output\ID-WIN-JTA8KU4EF9D-1561426618994-0-2: The process cannot access the file because it is being used by another process
> at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
> at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
> at sun.nio.fs.WindowsFileCopy.copy(Unknown Source)
> at sun.nio.fs.WindowsFileSystemProvider.copy(Unknown Source)
> at java.nio.file.Files.copy(Unknown Source)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)