Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-8585

The lazy load option doesn't unlock the file

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 2.15.0
    • 2.15.2, 2.16.0
    • camel-csv
    • None
    • Unknown

    Description

      Hi,
      After to upgrade camel from 2.14.1 to 2.15.0, a org.apache.camel.component.file.GenericFileOperationFailedException Exception is thrown when camel move/delete the file at the end of process.
      After some tests, I've notice that the issue appear when the lazy load option is enabled. I think, the reader or parser used by the component Apache CSV 1.0 aren't closed at the end of file.

      My stacktrace:

      14:30:48,960 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) org.apache.camel.component.file.GenericFileOperationFailedException: Error renaming file from C:\temp\import\source\file_20150304162756890.csv to C:\temp\import\source\error\file_20150304162756890_20150401143044944.csv
      
      14:30:48,964 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:81)
      
      14:30:48,966 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.strategy.GenericFileProcessStrategySupport.renameFile(GenericFileProcessStrategySupport.java:113)
      
      14:30:48,973 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.rollback(GenericFileRenameProcessStrategy.java:66)
      
      14:30:48,976 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.GenericFileOnCompletion.processStrategyRollback(GenericFileOnCompletion.java:151)
      
      14:30:48,977 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.GenericFileOnCompletion.onCompletion(GenericFileOnCompletion.java:86)
      
      14:30:48,979 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.GenericFileOnCompletion.onFailure(GenericFileOnCompletion.java:58)
      
      14:30:48,980 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(UnitOfWorkHelper.java:101)
      
      14:30:48,981 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:229)
      
      14:30:48,982 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.util.UnitOfWorkHelper.doneUow(UnitOfWorkHelper.java:65)
      
      14:30:48,983 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:650)
      
      14:30:48,984 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:618)
      
      14:30:48,986 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.processor.CamelInternalProcessor$InternalCallback.done(CamelInternalProcessor.java:240)
      
      14:30:48,987 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.impl.MDCUnitOfWork$MDCCallback.done(MDCUnitOfWork.java:231)
      
      14:30:48,988 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.processor.Pipeline.process(Pipeline.java:106)
      
      14:30:48,989 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
      
      14:30:48,991 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:433)
      
      14:30:48,992 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:211)
      
      14:30:48,993 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:175)
      
      14:30:48,994 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:174)
      
      14:30:48,995 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:101)
      
      14:30:48,997 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      
      14:30:48,998 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
      
      14:30:48,999 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
      
      14:30:49,000 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
      
      14:30:49,001 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      
      14:30:49,002 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      
      14:30:49,004 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at java.lang.Thread.run(Thread.java:745)
      
      14:30:49,005 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) Caused by: java.io.IOException: Renaming file from 'C:\temp\import\source\file_20150304162756890.csv' to 'C:\temp\import\source\error\file_20150304162756890_20150401143044944.csv' failed: Cannot delete file 'C:\temp\import\source\file_20150304162756890.csv' after copy succeeded
      
      14:30:49,008 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.util.FileUtil.renameFileUsingCopy(FileUtil.java:471)
      
      14:30:49,010 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.util.FileUtil.renameFile(FileUtil.java:443)
      
      14:30:49,012 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	at org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:78)
      
      14:30:49,013 INFO  [stdout] (Camel (Socle-CamelContext) thread #3 - file://C:/temp/import/source) 	... 26 more
      

      Attachments

        Activity

          People

            davsclaus Claus Ibsen
            4ntoin3 Antoine Esnault
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: