Hello,

>>A typical problem is that your do some custom code where you read the
>>file or do something with a input stream you do not close properly.
In the sample project shared our processor is doing nothing with file.

Here is the log attached.
Key Observations from log
[1] At end of the log I am printing the file which is handled twice. An
example is "newFile887"
[2] Also as soon as we enter the processor I print the
*"System.out.println("inside
processor"+fileName);"*
[2.1] We can see that *"inside processornewFile887" *is printed first at
line 7220 and then again at line8271
[3] I tried it on 2.19.0 with java 1.8

Note : the issue happen in 2 out of 3 time


PFA:
[1] log file [i have removed the other logs at mail dont go with large file]
[2] updated App.java with better sysouts



On Wed, Jan 3, 2018 at 8:19 PM, Bhuvan Gupta <bhuva...@gmail.com> wrote:

> I am working more on it prove it.
>
> meanwhile issue video https://drive.google.com/file/d/
> 1znGkVn2JtpFvtlUnwifPKCTWujAiFFPo/view
> See @00.05
>
> On Wed, Jan 3, 2018 at 7:26 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>
>> We cannot reproduce your problem.
>>
>> There can be several reasons why a file cannot be renamed, but
>> unfortunately the file api just returns a boolean if it cannot rename
>> a file.
>> A typical problem is that your do some custom code where you read the
>> file or do something with a input stream you do not close properly.
>>
>> Also using threads(1) does not really make sense.
>>
>>
>>
>> On Tue, Jan 2, 2018 at 6:02 AM, Bhuvan Gupta <bhuva...@gmail.com> wrote:
>> > Hello nice people,
>> >
>> > We are using camel 2.17 with java 1.7 in our sample project and 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.GenericFileProcessS
>> trategySupport.renameFile(GenericFileProcessStrategySupport.java:115)
>> > at
>> > org.apache.camel.component.file.strategy.GenericFileRenamePr
>> ocessStrategy.commit(GenericFileRenameProcessStrategy.java:88)
>> > at
>> > org.apache.camel.component.file.GenericFileOnCompletion.proc
>> essStrategyCommit(GenericFileOnCompletion.java:127)
>> > at
>> > org.apache.camel.component.file.GenericFileOnCompletion.onCo
>> mpletion(GenericFileOnCompletion.java:83)
>> > at
>> > org.apache.camel.component.file.GenericFileOnCompletion.onCo
>> mplete(GenericFileOnCompletion.java:57)
>> > at
>> > org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(
>> UnitOfWorkHelper.java:104)
>> > at org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWo
>> rk.java:229)
>> > at org.apache.camel.util.UnitOfWorkHelper.doneUow(UnitOfWorkHel
>> per.java:65)
>> > at
>> > org.apache.camel.processor.CamelInternalProcessor$UnitOfWork
>> ProcessorAdvice.after(CamelInternalProcessor.java:654)
>> > at
>> > org.apache.camel.processor.CamelInternalProcessor$UnitOfWork
>> ProcessorAdvice.after(CamelInternalProcessor.java:609)
>> > at
>> > org.apache.camel.processor.CamelInternalProcessor$InternalCa
>> llback.done(CamelInternalProcessor.java:239)
>> > at
>> > org.apache.camel.processor.CamelInternalProcessor$InternalCa
>> llback.done(CamelInternalProcessor.java:250)
>> > at
>> > org.apache.camel.processor.RedeliveryErrorHandler$1.done(Red
>> eliveryErrorHandler.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(ThreadPool
>> Executor.java:1145)
>> > at
>> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>> lExecutor.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 Main class as well as the project zip
>> >
>> > AND HAPPY NEW YEAR.
>> >
>> > hoping to resolve it soon
>> >
>> >
>> >
>> >
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> http://davsclaus.com @davsclaus
>> Camel in Action 2: https://www.manning.com/ibsen2
>>
>
>

Reply via email to