Bhuvan Gupta created CAMEL-12112:
------------------------------------
Summary: Camel processing single file twice in 'file' endpoint
Key: CAMEL-12112
URL: https://issues.apache.org/jira/browse/CAMEL-12112
Project: Camel
Issue Type: Bug
Components: camel-core
Affects Versions: 2.18.5, 2.17.7
Environment: We are using Apache Camel core 2.18.5, Oracle Java 1.8,
we have tried on Ubuntu and window 7 both.
Reporter: Bhuvan Gupta
Attachments: App.java
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
{code:java}
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)
{code}
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
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)