FTP rename fails
----------------

                 Key: CAMEL-3595
                 URL: https://issues.apache.org/jira/browse/CAMEL-3595
             Project: Camel
          Issue Type: Bug
          Components: camel-ftp
    Affects Versions: 2.4.0
            Reporter: Mikael Jørgensen


(This is related to the user group discussion 
http://camel.465427.n5.nabble.com/Problem-renaming-existing-file-in-FTP-td3307670.html)

When using a tmpPrefix when uploading, the rename from the tmp-file to the 
destination file fails, if the destination file is already present, even though 
the option fileExist=Override is used.

We have the problem on just a few destination servers which all seems to be 
windows machines(?).

I have fetched the 2.4 branch of camel-ftp to find out why it does not work, 
since the unit test you refer to in your previous post do excercise the problem.

It appears that the cause of the problem is, that the FtpOperations.existsFile 
fails to return true, which then causes the code not to enter the part where it 
deletes the exisiting file.

The reason for the FtpOperations.existsFile to return false, is, that the list 
of existing files has the directoryname prepended, e.g. I'm trying to upload 
Test.REN to folder test/rename, and in the code 
"if (existing.equals(onlyName))" 
existing=test/rename\Test.REN and onlyName=Test.REN - which returns false - but 
causes the later rename to fail as the target folder did contain the Test.REN. 

My guess is that it is server dependent whether the returned list of names in 
the directory include the directory name or not?

To fix this I have added the following line of code before the if-statement
existing = FileUtil.stripPath(FileUtil.normalizePath(existing));
So it will strip the path part of the file name before comparing it to onlyName.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to