Hi

You should use the deadLetterChannel as the error handler.
errorHandler(deadLetterChannel("...")...



On Wed, Feb 13, 2013 at 2:06 PM, briane80 <bel...@ccea.org.uk> wrote:
> Hi,
>
> I'm using camel 2.10.3 on windows 7.
>
> I have a route set up as follows:
>
> errorHandler("file:\\\\C:\\Errors").maximumRedeliveries(3).redeliveryDelay(5000).retryAttemptedLogLevel(LoggingLevel.WARN).useOriginalMessage());
>
> from("file:\\\\C:\\Messages\\Inbox?consumer.delay=5000&include=.*.gz").unmarshal().gzip().to("file:\\\\C:\\Messages\\Outbox")
>
> The include option ignores all files without a .gz extension.
>
> The issue im having is if a file comes in with a .gz extension but is not
> really a gzip file (i.e. a .txt file that i've manully rename the extension
> to .gz) then camel throws an exception as follows:
>
> [C:%5CMessages%5CTransportInbox] DeadLetterChannel              WARN  Failed
> delivery for (MessageId: ID-DT-013BG-005752-52292-1360760432044-0-1 on
> ExchangeId: ID-DT-013BG-005752-52292-1360760432044-0-2). On delivery
> attempt: 0 caught: java.io.IOException: Not in GZIP format
> [C:%5CMessages%5CTransportInbox] DeadLetterChannel              WARN  Failed
> delivery for (MessageId: ID-DT-013BG-005752-52292-1360760432044-0-1 on
> ExchangeId: ID-DT-013BG-005752-52292-1360760432044-0-2). On delivery
> attempt: 1 caught: java.io.IOException: Not in GZIP format
> [C:%5CMessages%5CTransportInbox] DeadLetterChannel              WARN  Failed
> delivery for (MessageId: ID-DT-013BG-005752-52292-1360760432044-0-1 on
> ExchangeId: ID-DT-013BG-005752-52292-1360760432044-0-2). On delivery
> attempt: 2 caught: java.io.IOException: Not in GZIP format
> [C:%5CMessages%5CTransportInbox] DeadLetterChannel              WARN  Failed
> delivery for (MessageId: ID-DT-013BG-005752-52292-1360760432044-0-1 on
> ExchangeId: ID-DT-013BG-005752-52292-1360760432044-0-2). On delivery
> attempt: 3 caught: java.io.IOException: Not in GZIP format
> [C:%5CMessages%5CTransportInbox] GenericFileOnCompletion        WARN  Caused
> by: [org.apache.camel.component.file.GenericFileOperationFailedException -
> Error renaming file from C:\Messages\TransportInbox\invalid_gzip_test9.gz to
> C:\Messages\TransportInbox\.camel\invalid_gzip_test9.gz]
> org.apache.camel.component.file.GenericFileOperationFailedException: Error
> renaming file from C:\Messages\TransportInbox\invalid_gzip_test9.gz to
> C:\Messages\TransportInbox\.camel\invalid_gzip_test9.gz
>         at
> org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:72)
>         at
> org.apache.camel.component.file.strategy.GenericFileProcessStrategySupport.renameFile(GenericFileProcessStrategySupport.java:107)
>         at
> org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.commit(GenericFileRenameProcessStrategy.java:86)
>         at
> org.apache.camel.component.file.GenericFileOnCompletion.processStrategyCommit(GenericFileOnCompletion.java:132)
>         at
> org.apache.camel.component.file.GenericFileOnCompletion.onCompletion(GenericFileOnCompletion.java:82)
>         at
> org.apache.camel.component.file.GenericFileOnCompletion.onComplete(GenericFileOnCompletion.java:53)
>         at
> org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(UnitOfWorkHelper.java:55)
>         at 
> org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:226)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.doneUow(UnitOfWorkProcessor.java:199)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.access$000(UnitOfWorkProcessor.java:37)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor$1.done(UnitOfWorkProcessor.java:157)
>         at
> org.apache.camel.processor.RouteContextProcessor$1.done(RouteContextProcessor.java:56)
>         at org.apache.camel.processor.Pipeline.process(Pipeline.java:106)
>         at
> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
>         at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
>         at
> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
>         at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
>         at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
>         at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
>         at
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:336)
>         at
> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:189)
>         at
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:155)
>         at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:142)
>         at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:92)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>         at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
> Caused by: java.io.IOException: Renaming file from:
> C:\Messages\TransportInbox\invalid_gzip_test9.gz to:
> C:\Messages\TransportInbox\.camel\invalid_gzip_test9.gz failed due cannot
> delete from file: C:\Messages\TransportInbox\invalid_gzip_test9.gz after
> copy succeeded
>         at org.apache.camel.util.FileUtil.renameFile(FileUtil.java:384)
>         at
> org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:70)
>         ... 36 more
>
> An IOException is thrown as expected due to not in GZIP format.
>
> The file has been copied to the .camel directory and the deadletterchannel -
> however it still exists in the inbox folder camel still tried to process it
> over and over again due to:
>
> Caused by: java.io.IOException: Renaming file from:
> C:\Messages\TransportInbox\invalid_gzip_test9.gz to:
> C:\Messages\TransportInbox\.camel\invalid_gzip_test9.gz failed due cannot
> delete from file: C:\Messages\TransportInbox\invalid_gzip_test9.gz after
> copy succeeded
>         at org.apache.camel.util.FileUtil.renameFile(FileUtil.java:384)
>         at
> org.apache.camel.component.file.FileOperations.renameFile(FileOperations.java:70)
>         ... 36 more
>
> How do I stop camel trying to process the message?
>
>
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/How-to-handle-error-when-Renaming-file-from-failed-due-cannot-delete-from-file-tp5727493.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to