[ https://issues.apache.org/jira/browse/CAMEL-4010?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13144680#comment-13144680 ]
Claus Ibsen commented on CAMEL-4010: ------------------------------------ The ftp consumer is not thread safe, we should possible force the ftp consumer to run synchronously. > Camel FTP component fails to process multiple files at once from a specified > folder > ----------------------------------------------------------------------------------- > > Key: CAMEL-4010 > URL: https://issues.apache.org/jira/browse/CAMEL-4010 > Project: Camel > Issue Type: Bug > Components: camel-ftp > Affects Versions: 2.6.0 > Environment: Camel 2.6.0-fuse-0.1-0.9 > Running in ServiceMix > Java 1.6 > Reporter: Laurentiu Trica > Fix For: 2.9.0 > > Attachments: test-camel-ftp.zip > > > Camel FTP component fails to process multiple files at once from a specified > folder (let's assume the folder is /in). > When the consumer connects to a ftp account and finds a list of, let's say, 3 > files, it will try to retrieve them in parallel but this is not handled > properly. > As you can see from the below FTP server log, this is what Camel FTP does: > - it changes the current directory to /in > - retrieves the file > - it changes the current directory to / > - the second (probably) thread changes the directory to /in > - retreives the second file > - the first (probably) thread sends a delete command but it sends it as if it > were in the root folder but it is actually in the /in folder > - the FTP gives an error that the file doesn't exist > - somehow the FTP Component blocks itself on the first file... > See my comments in the following log starting with ***** > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 257 "/" is current > directory. > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> CWD in > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 250 CWD > successful. "/in" is current directory. > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> PASV > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 227 Entering > Passive Mode (192,168,0,25,228,206) > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> RETR WS_1001_1.xml > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 150 Connection > accepted > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> SSL connection for > data connection established > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 226 Transfer OK > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> CWD / > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 250 CWD > successful. "/" is current directory. > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> PWD > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 257 "/" is current > directory. > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> CWD in > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 250 CWD > successful. "/in" is current directory. > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> PASV > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 227 Entering > Passive Mode (192,168,0,25,228,207) > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> RETR WS_1001_2.xml > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 150 Connection > accepted > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> DELE > in/WS_1001_1.xml ***** The location is already /in, should be DELE > WS_1001_1.xml > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 550 File not found > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> PASV > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 227 Entering > Passive Mode (192,168,0,25,228,208) > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> NLST in > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 550 Directory not > found > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> PWD > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 257 "/in" is > current directory. > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> CWD in > ***** Current directory is already /in > (002386)5/20/2011 17:07:03 PM - sftp-test (192.168.0.194)> 550 CWD failed. > "/in/in": directory not found. > For the whole FTP server logs go here: > http://pastie.org/private/kknnkxpbyzqmai7gsm8z5g > For the Servicemix/Camel(Trace) log: > http://pastie.org/private/eulookxiepan3nkjyu41a > A workaround that seems to work is to use the maxMessagesPerPoll=1 option. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira