Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Not A Problem
-
2.17.7, 2.18.5, 2.19.4, 2.20.1
-
None
-
We are trying with Apache Camel core 2.18.5, 2.19.4, 2.20.1 Oracle Java 1.8, we have tried on Ubuntu and window 7 both.
Description
we defined our route as:
from("file:stageDummy")
.threads(1)
.process(myProcess);
We first add 1000 file in stageDummy folder, then we run the code and we get exception as below
org.apache.camel.component.file.GenericFileOperationFailedException: Cannot rename file: GenericFile[newFile319] to: GenericFile[.camel/newFile319] at org.apache.camel.component.file.strategy.GenericFileProcessStrategySupport.renameFile(GenericFileProcessStrategySupport.java:115) 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:654) at org.apache.camel.processor.CamelInternalProcessor$UnitOfWorkProcessorAdvice.after(CamelInternalProcessor.java:609) 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$1.done(RedeliveryErrorHandler.java:480) at org.apache.camel.management.InstrumentationProcessor$1.done(InstrumentationProcessor.java:86) at org.apache.camel.processor.Pipeline$1.done(Pipeline.java:148) at org.apache.camel.processor.ThreadsProcessor$ProcessCall.run(ThreadsProcessor.java:85) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)
As per our understanding camel picks up the file from the mentioned directory i.e in my case-stageDummy and processed by process-myProcess
and moves it to .camel sub folder.We noticed that if we were having more than or around 1000 files in the folder -stageDummy ,there were some exceptions
thrown
This exception is thrown randomly for n number of files,where n changes everytime we execute our main.Note that we were not trying to access the exchange
instead we kept our process simple.We could see that if there are 1000 files in our folder then the processor is getting called 1000+x times ,where x changes everytime example it gets called 1024 times,and we could see that camel is trying to process these x number of files again
We are attaching the Sample Main class