[ 
https://issues.apache.org/jira/browse/CAMEL-6219?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-6219.
--------------------------------

    Resolution: Not A Problem
      Assignee: Claus Ibsen

A problem in commons net 3.1
                
> FTPOperations changeCurrentDirectory uses local OS path separator, instead of 
> FTP Server. File upload fails.
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-6219
>                 URL: https://issues.apache.org/jira/browse/CAMEL-6219
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-ftp
>    Affects Versions: 2.10.4
>         Environment: Windows 7 with Oracle Java 6 JDK
> Remote vsftpd server on a Redhat based Linux distribution
>            Reporter: Mark Richards
>            Assignee: Claus Ibsen
>
> Summary:
> When uploading a single file to a vsftpd server from Windows using a Camel 
> ftp:// endpoint results in a 550 Failed to change directory error.
> Likely because the changeCurrentDirectory() command in FTPOperations doesn't 
> provide the server pathSeparator when compacting the url.
> Recreate:
>  - Start a vsftpd server (this likely affects other FTP servers) in a *nix 
> environment.
>  - Set log4j properties to TRACE for Camel
>  - In Windows, run a simple Java class that includes the following
> ProducerTemplate pt = camelContext.createProducerTemplate();
> pt.sendBody("ftp://user@host/subfolder?fileName=test.file&password=12345678&stepwise=false&separator=UNIX";);
> Trace:
> [2013.03.27 14:53:56] [main]  TRACE FtpOperations -  buildDirectory(test)
> [2013.03.27 14:53:56] [main]  TRACE FtpOperations -  
> changeCurrentDirectory(/var/ftp/pub)
> [2013.03.27 14:53:56] [main]  TRACE FtpOperations -  Changing directory: 
> \var\ftp\pub
> [2013.03.27 14:53:56] [main]  WARN  RemoteFileProducer -  Writing file failed 
> with: File operation failed: 550 Failed to change directory.
>  Cannot change directory to: \var\ftp\pub. Code: 550
> As you can see the path swaps from /var/ftp/pub to \var\ftp\pub which is the 
> wrong path separator!
> Likely location:
> org.apache.camel.component.file.remote.FTPOperations:656
>     path = FileUtil.compactPath(path);
> org.apache.camel.util.FileUtil:209
>     return compactPath(path, File.separatorChar);
> File.separatorChar would return the LOCAL OS path, not the REMOTE OS path.
> This should use the value specified by separator=UNIX ("/" not "\").
> Possible fix would be to use the other compactPath(path,separator) method.
> Result:
> You cannot upload a single file using FTP in this fashion from a Windows 
> client to a vsftpd server on Linux. I'll have to switch to an alternative 
> product for ftp until this is resolved, but look forward to returning to 
> using Camel for FTP uploads in the future :)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to