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

Pontus Ullgren updated CAMEL-7063:
----------------------------------

    Description: 
I have a problem when running a camel route that moves files from a SFTP server 
to a FTP server.
The problem occurs when the camel route executes on Windows while the remote 
servers are *nix.

This log shows the error (hostname, usernames and paths has been changed). As 
you can see FtpOperations#buildDirectory() is called using the local  OS path 
separator.
---
 INFO  [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   Connected and 
logged in to: 
Endpoint[ftp://us...@ftp.example.com//d02/test/in?binary=true&fileName=%24%7Bfile%3Aonlyname%7D&localWorkDirectory=%2Ftmp%2FcamelFileTmp%2F10027&password=xxxxxx&tempFileName=TEMP_%24%7Bfile%3Aonlyname%7D]
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   Writing using 
tempNameFile: /d02/test/in/TEMP_PDF20131211001.pdf
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
existsFile(/d02/test/in/PDF20131211001.pdf)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Existing file: 
/d02/test/in/PDF20131211001.pdf, target file: /d02/test/in/PDF20131211001.pdf
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   
EagerDeleteTargetFile, target exists
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   Eagerly deleting 
existing file: /d02/test/in/PDF20131211001.pdf
 DEBUG [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Deleting file: 
/d02/test/in/PDF20131211001.pdf
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   getCurrentDirectory()
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Current dir: 
/home/user1
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
changeCurrentDirectory(/d02/test/in)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: d02
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
test
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: in
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Client deleteFile: 
PDF20131211001.pdf
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
changeCurrentDirectory(/home/user1)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
home
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
user1
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
existsFile(/d02/test/in/TEMP_PDF20131211001.pdf)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
buildDirectory(\d02\test\in)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Trying to build remote 
directory: \d02\test\in
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
changeCurrentDirectory(/home/user1)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
home
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
user1
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   About to write 
[/d02/test/in/TEMP_PDF20131211001.pdf] to 
[Endpoint[ftp://us...@ftp.example.com//d02/test/in?binary=true&fileName=%24%7Bfile%3Aonlyname%7D&localWorkDirectory=%2Ftmp%2FcamelFileTmp%2F10027&password=xxxxxx&tempFileName=TEMP_%24%7Bfile%3Aonlyname%7D]]
 from exchange [Exchange[PDF20131211001.pdf]]
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
storeFile(/d02/test/in/TEMP_PDF20131211001.pdf)
----
The result is that there is a new empty folder called "\d02\test\in" in 
/home/user1 on the ftp server. The file it self is placed in the correct folder 
since FtpOperations#storeFile() is called with the original filename (not 
processed by FileUtils).

>From a quick analysis of the problem it seems to originate in 
>"GenericFileProducer.java" line 260, where FileUtil.normalizePath will give a 
>path with '\\' since the executing platform is Windows.

One solution might be that FTPOperations fix the path before actually trying to 
build the directory.

  was:
I have a problem when running a camel route that moves files from a SFTP server 
to a FTP server.
The problem occurs when the camel route executes on Windows while the remote 
servers are *nix.

This log shows the error (hostname, usernames and paths has been changed). As 
you can see FtpOperations#buildDirectory() is called using the local  OS path 
separator.
---
 INFO  [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   Connected and 
logged in to: 
Endpoint[ftp://us...@ftp.example.com//d02/test/in?binary=true&fileName=%24%7Bfile%3Aonlyname%7D&localWorkDirectory=%2Ftmp%2FcamelFileTmp%2F10027&password=xxxxxx&tempFileName=TEMP_%24%7Bfile%3Aonlyname%7D]
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   Writing using 
tempNameFile: /d02/test/in/TEMP_PDF20131211001.pdf
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
existsFile(/d02/test/in/PDF20131211001.pdf)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Existing file: 
/d02/test/in/PDF20131211001.pdf, target file: /d02/test/in/PDF20131211001.pdf
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   
EagerDeleteTargetFile, target exists
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   Eagerly deleting 
existing file: /d02/test/in/PDF20131211001.pdf
 DEBUG [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Deleting file: 
/d02/test/in/PDF20131211001.pdf
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   getCurrentDirectory()
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Current dir: 
/home/user1
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
changeCurrentDirectory(/d02/test/in)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: d02
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
test
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: in
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Client deleteFile: 
PDF20131211001.pdf
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
changeCurrentDirectory(/home/user1)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
home
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
user1
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
existsFile(/d02/test/in/TEMP_PDF20131211001.pdf)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
buildDirectory(\d02\test\in)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Trying to build remote 
directory: \d02\test\in
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
changeCurrentDirectory(/home/user1)
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
home
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
user1
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.RemoteFileProducer]   About to write 
[/d02/test/in/TEMP_PDF20131211001.pdf] to 
[Endpoint[ftp://us...@ftp.example.com//d02/test/in?binary=true&fileName=%24%7Bfile%3Aonlyname%7D&localWorkDirectory=%2Ftmp%2FcamelFileTmp%2F10027&password=xxxxxx&tempFileName=TEMP_%24%7Bfile%3Aonlyname%7D]]
 from exchange [Exchange[PDF20131211001.pdf]]
 TRACE [Camel (camel-context) thread #24 - 
sftp://sftpuser@10.0.1.10/download/PDF] 
[org.apache.camel.component.file.remote.FtpOperations]   
storeFile(/d02/test/in/TEMP_PDF20131211001.pdf)
----
The result is that there is a new empty folder called "\d02\test\in" in 
/home/user1 on the ftp server. The file it self is placed in the correct folder 
since FtpOperations#storeFile() is called with the original filename (not 
processed bt FileUtils).

>From a quick analysis of the problem it seems to originate in 
>"GenericFileProducer.java" line 260, where FileUtil.normalizePath will give a 
>path with '\\' since the executing platform is Windows.

One solution might be that FTPOperations fix the path before actually trying to 
build the directory.


> FTPOperations uses local OS path separator, instead of FTP Server in 
> buildDirectory
> -----------------------------------------------------------------------------------
>
>                 Key: CAMEL-7063
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7063
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-ftp
>    Affects Versions: 2.12.1
>         Environment: Camel 2.12.1
> Java JDK 1.6 running on Windows connecting to SFTP and FTP on remote *nix 
> systems.
>            Reporter: Pontus Ullgren
>
> I have a problem when running a camel route that moves files from a SFTP 
> server to a FTP server.
> The problem occurs when the camel route executes on Windows while the remote 
> servers are *nix.
> This log shows the error (hostname, usernames and paths has been changed). As 
> you can see FtpOperations#buildDirectory() is called using the local  OS path 
> separator.
> ---
>  INFO  [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.RemoteFileProducer]   Connected and 
> logged in to: 
> Endpoint[ftp://us...@ftp.example.com//d02/test/in?binary=true&fileName=%24%7Bfile%3Aonlyname%7D&localWorkDirectory=%2Ftmp%2FcamelFileTmp%2F10027&password=xxxxxx&tempFileName=TEMP_%24%7Bfile%3Aonlyname%7D]
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.RemoteFileProducer]   Writing using 
> tempNameFile: /d02/test/in/TEMP_PDF20131211001.pdf
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   
> existsFile(/d02/test/in/PDF20131211001.pdf)
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Existing file: 
> /d02/test/in/PDF20131211001.pdf, target file: /d02/test/in/PDF20131211001.pdf
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.RemoteFileProducer]   
> EagerDeleteTargetFile, target exists
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.RemoteFileProducer]   Eagerly 
> deleting existing file: /d02/test/in/PDF20131211001.pdf
>  DEBUG [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Deleting file: 
> /d02/test/in/PDF20131211001.pdf
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   getCurrentDirectory()
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Current dir: 
> /home/user1
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   
> changeCurrentDirectory(/d02/test/in)
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
> d02
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
> test
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
> in
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Client deleteFile: 
> PDF20131211001.pdf
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   
> changeCurrentDirectory(/home/user1)
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
> home
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
> user1
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   
> existsFile(/d02/test/in/TEMP_PDF20131211001.pdf)
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   
> buildDirectory(\d02\test\in)
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Trying to build 
> remote directory: \d02\test\in
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   
> changeCurrentDirectory(/home/user1)
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: /
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
> home
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   Changing directory: 
> user1
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.RemoteFileProducer]   About to write 
> [/d02/test/in/TEMP_PDF20131211001.pdf] to 
> [Endpoint[ftp://us...@ftp.example.com//d02/test/in?binary=true&fileName=%24%7Bfile%3Aonlyname%7D&localWorkDirectory=%2Ftmp%2FcamelFileTmp%2F10027&password=xxxxxx&tempFileName=TEMP_%24%7Bfile%3Aonlyname%7D]]
>  from exchange [Exchange[PDF20131211001.pdf]]
>  TRACE [Camel (camel-context) thread #24 - 
> sftp://sftpuser@10.0.1.10/download/PDF] 
> [org.apache.camel.component.file.remote.FtpOperations]   
> storeFile(/d02/test/in/TEMP_PDF20131211001.pdf)
> ----
> The result is that there is a new empty folder called "\d02\test\in" in 
> /home/user1 on the ftp server. The file it self is placed in the correct 
> folder since FtpOperations#storeFile() is called with the original filename 
> (not processed by FileUtils).
> From a quick analysis of the problem it seems to originate in 
> "GenericFileProducer.java" line 260, where FileUtil.normalizePath will give a 
> path with '\\' since the executing platform is Windows.
> One solution might be that FTPOperations fix the path before actually trying 
> to build the directory.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to