Hi

Read further and see page 378


On Fri, May 28, 2010 at 4:51 PM, ankelee <andreasasm...@gmail.com> wrote:
>
> Hi
>
> I'm trying to do a use case similar to the one on page 371 in Camel in
> Action.
> I need to start a route. Copy a batch of files from FTP, and then shut it
> down again.
>
> Pseudo Spring DSL:
>
> <from uri="ftp:data/in">
>  <onCompletion>
>  <filter>
>  <simple>${property.CamelBatchComplete} == true</simple>
>  <to uri="StopThisRouteProcessor">
>  </filter
> </onCompletion>
> <to uri="file:data/out">
>
> I check if the property set by BatchConsumers - CamelBatchComplete is true,
> and if it is the last Exchange of the batch I shut down the route.
>
> This doesn't work correctly, I get a SocketException because the route is
> shut down before it is done processing the files.
>
> On top of this it seems to only fail when there's only one file on the ftp
> directory.
>
> I expected that onCompletion first would be triggered when the entire route
> is completely done processing but it doesn't seem to be the case - is this a
> bug or am I doing it wrong?
>
> Debug output:
>
> 2010-05-28 16:36:21,274 INFO  [Camel Thread 0 -
> ftp://localhost/inbox?move=done&password=camel123&username=camel]
> [FtpPollingRoute]: Fetching  camel-core-2.2.0-fuse-01-00.jar
> 2010-05-28 16:36:21,290 INFO  [Camel Thread 0 -
> ftp://localhost/inbox?move=done&password=camel123&username=camel]
> [FtpPollingRoute]: camel-core-2.2.0-fuse-01-00.jar copied
> 2010-05-28 16:36:21,290 INFO  [Camel Thread 1 - OnCompletion]
> [FtpPollingRoute]: onComplete =  false
> 2010-05-28 16:36:27,186 INFO  [Camel Thread 0 -
> ftp://localhost/inbox?move=done&password=camel123&username=camel]
> [FtpPollingRoute]: Fetching  eclipse-jee-galileo-SR2-win32.zip
> 2010-05-28 16:36:28,466 INFO  [Camel Thread 0 -
> ftp://localhost/inbox?move=done&password=camel123&username=camel]
> [FtpPollingRoute]: eclipse-jee-galileo-SR2-win32.zip copied
> 2010-05-28 16:36:28,466 INFO  [Camel Thread 2 - OnCompletion]
> [FtpPollingRoute]: onComplete =  false
> 2010-05-28 16:36:31,305 INFO  [Camel Thread 0 -
> ftp://localhost/inbox?move=done&password=camel123&username=camel]
> [FtpPollingRoute]: Fetching  isuite-checkout.jar
> 2010-05-28 16:36:31,336 INFO  [Camel Thread 0 -
> ftp://localhost/inbox?move=done&password=camel123&username=camel]
> [FtpPollingRoute]: isuite-checkout.jar copied
> 2010-05-28 16:36:31,336 INFO  [Camel Thread 3 - OnCompletion]
> [FtpPollingRoute]: onComplete =  true
> 2010-05-28 16:36:31,336 INFO  [Camel Thread 3 - OnCompletion]
> [FtpPollingRoute]: Stopping
> 2010-05-28 16:36:31,352 INFO  [Camel Thread 3 - OnCompletion]
> [FtpPollingRoute]: Stopped
> 2010-05-28 16:36:31,352 ERROR [Camel Thread 0 -
> ftp://localhost/inbox?move=done&password=camel123&username=camel]
> [org.apache.camel.component.file.GenericFileOnCompletion]: Caused by:
> [org.apache.camel.component.file.GenericFileOperationFailedException - File
> operation failed:  Socket closed. Code: 221]
> org.apache.camel.component.file.GenericFileOperationFailedException: File
> operation failed:  Socket closed. Code: 221
>        at
> org.apache.camel.component.file.remote.FtpOperations.buildDirectory(FtpOperations.java:228)
>        at
> org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.renameFile(GenericFileRenameProcessStrategy.java:85)
>        at
> org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.commit(GenericFileRenameProcessStrategy.java:72)
>        at
> org.apache.camel.component.file.GenericFileOnCompletion.processStrategyCommit(GenericFileOnCompletion.java:121)
>        at
> org.apache.camel.component.file.GenericFileOnCompletion.onCompletion(GenericFileOnCompletion.java:83)
>
>
> that wraps a SocketException:
>
> Caused by: java.net.SocketException: Socket closed
>        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:99)
>        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>        at 
> java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
>        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
>
> --
> View this message in context: 
> http://old.nabble.com/Problems-shutting-down-route-onCompletion-tp28707903p28707903.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to