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
Priority: Critical
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.
For more information on JIRA, see: http://www.atlassian.com/software/jira