With TRUNCATED logs

[2.1] We can see that *"inside processornewFile887" *is printed first at
line 10 and then again at line 18

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

> 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
> [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(Executor
>>> s.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