Hi,

I am trying to read an XML file, split it and move it to an error folder in
case there is any failure. for that purpose, I have changed some of the tags
in my XML file so that SAXParser will throw an exception and hence camel
will move the file into error folder. The problem is that camel is not
writing the file to an error folder. Instead it throws an Exception stating
cannot rename file. I have read in one post that this was a problem in camel
earlier with Windows system but was resolved. Why i am still getting this
error? My OS is Windows XP. Camel version is >= 2.5.0 For more detail, I am
adding the code and log below.

*Code*

RouteDefinition routeDefinition = from("file:" + sourceEventFolder +
"?noop=false&move=processing" + "&moveFailed=error") ;
FilterDefinition filterDefinition =
routeDefinition.filter().simple("${file:name.ext} contains 'event'") ;
ExpressionNode process = filterDefinition.process(new Processor() {

public void process(Exchange exchange) throws Exception {

logger.debug("process() is called. ") ;

 }

}) ;
XPathBuilder xpath = xpath("/EVENTS/EVENT") ;
ExpressionNode splittedNode = filterDefinition.split(xpath) ;
splittedNode.to("file:" + splittedEventWorkFolder +
"?fileName=${file:name}-${date:now:yyyyMMdd-HHmmssSSS}-part-${in.header.id}")
;

*Log*

2011-02-03 17:42:58,014 ERROR
[org.apache.camel.component.file.GenericFileOnCompletion] -
org.apache.camel.component.file.GenericFileOperationFailedException: Cannot
rename file: GenericFile[Sample20110203-155258197EventFile.event] to:
GenericFile[error\Sample20110203-155258197EventFile.event] at
org.apache.camel.component.file.strategy.GenericFileProcessStrategySupport.renameFile(GenericFileProcessStrategySupport.java:100)
at
org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.rollback(GenericFileRenameProcessStrategy.java:65)
at
org.apache.camel.component.file.GenericFileOnCompletion.processStrategyRollback(GenericFileOnCompletion.java:164)
at
org.apache.camel.component.file.GenericFileOnCompletion.onCompletion(GenericFileOnCompletion.java:94)
at
org.apache.camel.component.file.GenericFileOnCompletion.onFailure(GenericFileOnCompletion.java:57)
at
org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(UnitOfWorkHelper.java:55)
at org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:166)
at
org.apache.camel.processor.UnitOfWorkProcessor.doneUow(UnitOfWorkProcessor.java:140)
at
org.apache.camel.processor.UnitOfWorkProcessor.access$000(UnitOfWorkProcessor.java:36)
at
org.apache.camel.processor.UnitOfWorkProcessor$1.done(UnitOfWorkProcessor.java:109)
at org.apache.camel.processor.DefaultChannel$1.done(DefaultChannel.java:275)
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:269)
at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
at
org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:330)
at
org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:157)
at
org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
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:181)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
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:619)


Regards,
Nilesh Soni



-- 
Nilesh Soni

Reply via email to