Hi, I've confirmed this is a Camel bug and not an SFTP library limitation. See 
below for trace log of a successful retrieval from an absolute path.

I did this in a way that's not suitable for general use: I just unconditionally 
hacked a "/" on the front of the path in 
SftpOperations.retrieveFileToStreamInBody:

            // change directory to path where the file is to be retrieved
            // (must do this as some FTP servers cannot retrieve using absolute 
path)
            String path = FileUtil.onlyPath(name);
            if (path != null) {
                changeCurrentDirectory("/" + path);
            }

Cheers
-Lorrin


ScheduledPollConsumer 2010-10-05 11:05:48,540 -- TRACE -- Starting to poll: 
Endpoint[sftp://tom...@host//tmp/pitch_activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptOlder&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&move=.done&password=******]
SftpConsumer 2010-10-05 11:05:48,547 -- TRACE -- doPollDirectory from 
absolutePath: /tmp/pitch_activity_logs, dirName: null
SftpOperations 2010-10-05 11:05:48,548 -- TRACE -- Changing directory: /
SftpOperations 2010-10-05 11:05:48,632 -- TRACE -- Changing directory: tmp
ScheduledPollConsumer 2010-10-05 11:05:48,681 -- TRACE -- Starting to poll: 
Endpoint[sftp://tom...@host//tmp/pitch_activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptNewest&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&noop=true&password=******]
SftpConsumer 2010-10-05 11:05:48,682 -- TRACE -- doPollDirectory from 
absolutePath: /tmp/pitch_activity_logs, dirName: null
SftpOperations 2010-10-05 11:05:48,682 -- TRACE -- Changing directory: /
SftpOperations 2010-10-05 11:05:48,713 -- TRACE -- Changing directory: 
pitch_activity_logs
SftpOperations 2010-10-05 11:05:48,768 -- TRACE -- Changing directory: tmp
SftpConsumer 2010-10-05 11:05:48,797 -- TRACE -- Polling directory: 
/tmp/pitch_activity_logs
SftpOperations 2010-10-05 11:05:48,856 -- TRACE -- Changing directory: 
pitch_activity_logs
SftpConsumer 2010-10-05 11:05:48,947 -- TRACE -- Polling directory: 
/tmp/pitch_activity_logs
SftpConsumer 2010-10-05 11:05:49,013 -- TRACE -- Found 4 in directory: 
/tmp/pitch_activity_logs
SftpConsumer 2010-10-05 11:05:49,013 -- TRACE -- This consumer is idempotent 
and the file has been consumed before. Will skip this file: 
GenericFile[pitch_activity_log.1285909200]
SftpOperations 2010-10-05 11:05:49,013 -- TRACE -- Changing directory: /
SftpOperations 2010-10-05 11:05:49,105 -- TRACE -- Changing directory: home
SftpConsumer 2010-10-05 11:05:49,169 -- TRACE -- Found 4 in directory: 
/tmp/pitch_activity_logs
SftpOperations 2010-10-05 11:05:49,170 -- TRACE -- Changing directory: /
SftpOperations 2010-10-05 11:05:49,196 -- TRACE -- Changing directory: tomcat
SftpOperations 2010-10-05 11:05:49,258 -- TRACE -- Changing directory: home
SftpConsumer 2010-10-05 11:05:49,284 -- DEBUG -- Took 0.737 seconds to poll: 
/tmp/pitch_activity_logs/
ScheduledPollConsumer 2010-10-05 11:05:49,284 -- TRACE -- Finished polling: 
Endpoint[sftp://tom...@host//tmp/pitch_activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptOlder&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&move=.done&password=******]
SftpOperations 2010-10-05 11:05:49,347 -- TRACE -- Changing directory: tomcat
SftpConsumer 2010-10-05 11:05:49,435 -- DEBUG -- Took 0.753 seconds to poll: 
/tmp/pitch_activity_logs/
SftpConsumer 2010-10-05 11:05:49,436 -- DEBUG -- Total 1 files to consume
SftpConsumer 2010-10-05 11:05:49,436 -- TRACE -- Processing file: 
GenericFile[pitch_activity_log.1285909200]
SftpConsumer 2010-10-05 11:05:49,436 -- TRACE -- Retrieving file: 
tmp/pitch_activity_logs/pitch_activity_log.1285909200 from: 
Endpoint[sftp://tom...@host//tmp/pitch_activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptNewest&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&noop=true&password=******]
SftpOperations 2010-10-05 11:05:49,436 -- TRACE -- Changing directory: /
SftpOperations 2010-10-05 11:05:49,526 -- TRACE -- Changing directory: tmp
SftpOperations 2010-10-05 11:05:49,608 -- TRACE -- Changing directory: 
pitch_activity_logs
SftpOperations 2010-10-05 11:05:49,928 -- TRACE -- Changing directory: /
SftpOperations 2010-10-05 11:05:50,026 -- TRACE -- Changing directory: home
SftpOperations 2010-10-05 11:05:50,117 -- TRACE -- Changing directory: tomcat
SftpConsumer 2010-10-05 11:05:50,204 -- TRACE -- Retrieved file: 
tmp/pitch_activity_logs/pitch_activity_log.1285909200 from: 
Endpoint[sftp://tom...@host//tmp/pitch_activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptNewest&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&noop=true&password=******]
SftpConsumer 2010-10-05 11:05:50,204 -- DEBUG -- About to process file: 
GenericFile[pitch_activity_log.1285909200] using exchange: 
Exchange[pitch_activity_log.1285909200]






On Oct 5, 2010, at 10:21 AM, Lorrin Nelson wrote:

> Hmm. How come when polling the absolute path it says this before listing the 
> files in the directory (which works)?
>>> SftpOperations 2010-10-04 15:45:07,494 -- TRACE -- Changing directory: /
>>> SftpOperations 2010-10-04 15:45:07,608 -- TRACE -- Changing directory: tmp
>>> SftpOperations 2010-10-04 15:45:07,697 -- TRACE -- Changing directory: 
>>> activity_logs
> 
> ...but then when it tries to retrieve the file (which fails) it just says:
>>> SftpOperations 2010-10-04 15:45:08,277 -- TRACE -- Changing directory: tmp
>>> SftpOperations 2010-10-04 15:45:08,367 -- TRACE -- Changing directory: 
>>> activity_logs
> 
> 
> That looks awfully like Camel isn't even asking the SFTP library to go to / 
> first when it comes time to retrieve the file.
> 
> Cheers!
> -Lorrin
> 
> 
> On Oct 5, 2010, at 12:02 AM, Claus Ibsen wrote:
> 
>> Hi
>> 
>> Great that the relative works. This is also what I expected.
>> 
>> In terms of absolute then Camel changes the directory to / (since its
>> absolute) and the SFTP library returns OK for this.
>> But in reality it does not go to the root path, but most likely just
>> goes to the home directory of the user.
>> And hence why absolute does not work for you.
>> 
>> I don't see any API or way to tell SFTP library it should change to
>> root path and not home folder.
>> 
>> A solution to be able to poll files from an absolute folder is to
>> create a symlink in the user home directory which can be polled by the
>> SFTP library.
>> 
>>> nlike the polling stage where it says "doPollDirectory from absolutePath: 
>>> /tmp/activity_logs".
>> The reason why you see this is because Camel logs the path configured
>> from the endpoint, when the poller starts. Hence you see the leading
>> /.
>> 
>> 
>> 
>> On Tue, Oct 5, 2010 at 12:58 AM, Lorrin Nelson
>> <lhn_git...@nerdylorrin.net> wrote:
>>> Hi Claus, thanks for the continued support. With the latest code (revision 
>>> 1003927) relative URIs are working again for me.
>>> 
>>> This the first time I'm using camel-ftp. The server I'm talking to is a 
>>> Fedora 11 box running OpenSSH_5.2p1. Regular FTP is an unlikely option for 
>>> us. Relative URLs are an acceptable work-around.
>>> 
>>> Below is a trace log of an absolute URL.
>>> 
>>> On the first attempt, note that ~/tmp does exist. Therefore when it tries 
>>> to go to *relative* path tmp (which is the wrong thing to do), it succeeds. 
>>> Then when it tries to go one level deeper into pitch_activity_logs it 
>>> fails. The second attempt is really interesting. Note there that the 
>>> current working directory has remained at /home/tomcat/tmp. So when it 
>>> fails to go to *relative* path tmp, it fails right away. BTW, note that it 
>>> says "Retrieving file: tmp/activity_logs/activity_log.1285909200" with no 
>>> leading slash, unlike the polling stage where it says "doPollDirectory from 
>>> absolutePath: /tmp/activity_logs".
>>> 
>>> Cheers
>>> -Lorrin
>>> 
>>> 
>>> SftpConsumer 2010-10-04 15:45:07,445 -- INFO -- Connected and logged in to: 
>>> sftp://tom...@host:22
>>> SftpConsumer 2010-10-04 15:45:07,494 -- TRACE -- doPollDirectory from 
>>> absolutePath: /tmp/activity_logs, dirName: null
>>> SftpOperations 2010-10-04 15:45:07,494 -- TRACE -- Changing directory: /
>>> SftpOperations 2010-10-04 15:45:07,608 -- TRACE -- Changing directory: tmp
>>> SftpOperations 2010-10-04 15:45:07,697 -- TRACE -- Changing directory: 
>>> activity_logs
>>> SftpConsumer 2010-10-04 15:45:07,788 -- TRACE -- Polling directory: 
>>> /tmp/activity_logs
>>> SftpConsumer 2010-10-04 15:45:08,011 -- TRACE -- Found 4 in directory: 
>>> /tmp/activity_logs
>>> SftpOperations 2010-10-04 15:45:08,012 -- TRACE -- Changing directory: /
>>> SftpOperations 2010-10-04 15:45:08,099 -- TRACE -- Changing directory: home
>>> SftpOperations 2010-10-04 15:45:08,189 -- TRACE -- Changing directory: 
>>> tomcat
>>> SftpConsumer 2010-10-04 15:45:08,274 -- DEBUG -- Took 0.829 seconds to 
>>> poll: /tmp/activity_logs/
>>> SftpConsumer 2010-10-04 15:45:08,275 -- DEBUG -- Total 1 files to consume
>>> SftpConsumer 2010-10-04 15:45:08,276 -- TRACE -- Processing file: 
>>> GenericFile[activity_log.1285909200]
>>> SftpConsumer 2010-10-04 15:45:08,276 -- TRACE -- Retrieving file: 
>>> tmp/activity_logs/activity_log.1285909200 from: 
>>> Endpoint[sftp://tom...@host//tmp/activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptNewest&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&noop=true&password=******]
>>> SftpOperations 2010-10-04 15:45:08,277 -- TRACE -- Changing directory: tmp
>>> SftpOperations 2010-10-04 15:45:08,367 -- TRACE -- Changing directory: 
>>> activity_logs
>>> SftpConsumer 2010-10-04 15:45:08,414 -- ERROR -- Caused by: 
>>> [org.apache.camel.component.file.GenericFileOperationFailedException - 
>>> Cannot change directory to: activity_logs]
>>> org.apache.camel.component.file.GenericFileOperationFailedException: Cannot 
>>> change directory to: activity_logs
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:383)
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:368)
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:451)
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:430)
>>>       at 
>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:299)
>>>       at 
>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
>>>       at 
>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
>>>       at 
>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>>       at 
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>       at 
>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>       at 
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>       at 
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>       at 
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>       at 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>       at 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>       at java.lang.Thread.run(Thread.java:637)
>>> Caused by: 2: No such file
>>>       at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
>>>       at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:1822)
>>>       at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:268)
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:381)
>>>       ... 16 more
>>> ScheduledPollConsumer 2010-10-04 15:45:08,426 -- TRACE -- Finished polling: 
>>> Endpoint[sftp://tom...@host//tmp/activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptNewest&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&noop=true&password=******]
>>> 
>>> 
>>> 
>>> ScheduledPollConsumer 2010-10-04 15:45:21,413 -- TRACE -- Starting to poll: 
>>> Endpoint[sftp://tom...@host//tmp/activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptNewest&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&noop=true&password=******]
>>> SftpConsumer 2010-10-04 15:45:21,413 -- TRACE -- doPollDirectory from 
>>> absolutePath: /tmp/activity_logs, dirName: null
>>> SftpOperations 2010-10-04 15:45:21,413 -- TRACE -- Changing directory: /
>>> SftpOperations 2010-10-04 15:45:21,496 -- TRACE -- Changing directory: tmp
>>> SftpOperations 2010-10-04 15:45:21,585 -- TRACE -- Changing directory: 
>>> activity_logs
>>> SftpConsumer 2010-10-04 15:45:21,675 -- TRACE -- Polling directory: 
>>> /tmp/activity_logs
>>> SftpConsumer 2010-10-04 15:45:21,907 -- TRACE -- Found 4 in directory: 
>>> /tmp/activity_logs
>>> SftpOperations 2010-10-04 15:45:21,907 -- TRACE -- Changing directory: /
>>> SftpOperations 2010-10-04 15:45:21,997 -- TRACE -- Changing directory: home
>>> SftpOperations 2010-10-04 15:45:22,084 -- TRACE -- Changing directory: 
>>> tomcat
>>> SftpOperations 2010-10-04 15:45:22,177 -- TRACE -- Changing directory: tmp
>>> SftpConsumer 2010-10-04 15:45:22,261 -- DEBUG -- Took 0.848 seconds to 
>>> poll: /tmp/activity_logs/
>>> SftpConsumer 2010-10-04 15:45:22,261 -- DEBUG -- Total 1 files to consume
>>> SftpConsumer 2010-10-04 15:45:22,261 -- TRACE -- Processing file: 
>>> GenericFile[activity_log.1285909200]
>>> SftpConsumer 2010-10-04 15:45:22,261 -- TRACE -- Retrieving file: 
>>> tmp/activity_logs/activity_log.1285909200 from: 
>>> Endpoint[sftp://tom...@host//tmp/activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptNewest&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&noop=true&password=******]
>>> SftpOperations 2010-10-04 15:45:22,262 -- TRACE -- Changing directory: tmp
>>> SftpConsumer 2010-10-04 15:45:22,305 -- ERROR -- Caused by: 
>>> [org.apache.camel.component.file.GenericFileOperationFailedException - 
>>> Cannot change directory to: tmp]
>>> org.apache.camel.component.file.GenericFileOperationFailedException: Cannot 
>>> change directory to: tmp
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:383)
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:368)
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:451)
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:430)
>>>       at 
>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:299)
>>>       at 
>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
>>>       at 
>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
>>>       at 
>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>>       at 
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>       at 
>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>       at 
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>       at 
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>       at 
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>       at 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>       at 
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>       at java.lang.Thread.run(Thread.java:637)
>>> Caused by: 2: No such file
>>>       at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
>>>       at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:1822)
>>>       at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:268)
>>>       at 
>>> org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:381)
>>>       ... 16 more
>>> ScheduledPollConsumer 2010-10-04 15:45:22,311 -- TRACE -- Finished polling: 
>>> Endpoint[sftp://tom...@host//tmp/activity_logs/?delay=15000&idempotent=true&idempotentRepository=%23apacheLogFilenameRepositoryAcceptNewest&include=.*.log.%5B-%2F%3A0-9%5D*&initialDelay=3000&noop=true&password=******]
>>> 
>>> 
>>> 
>>> 
>>> On Oct 2, 2010, at 12:14 AM, Claus Ibsen wrote:
>>> 
>>>> Hi Loririn
>>>> 
>>>> I think you/we have to step back. We have other users in the past
>>>> running with SFTP with no problems at all. Also fetching files
>>>> recursively.
>>>> So I wonder if we should revert back and keep the old logic!
>>>> 
>>>> 1)
>>>> Is this the first time you use camel-ftp?
>>>> 
>>>> 2)
>>>> What OS and FTP server are you using?
>>>> 
>>>> 3)
>>>> Can you use regular FTP instead?
>>>> 
>>>> 4)
>>>> Use relative urls over absolute. They where the first supported.
>>>> 
>>>> 5)
>>>> Can you enable TRACE logging on org.apache.camel.component.file and
>>>> setup a simple example so it makes it easier to follow and understand
>>>> what its supposed to do, and what happens in reality so we can see and
>>>> understand the difference.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Fri, Oct 1, 2010 at 10:45 PM, Lorrin Nelson
>>>> <lhn_git...@nerdylorrin.net> wrote:
>>>>> Hi Claus. Ack, sorry about that. I'm pulling through github rather than 
>>>>> SVN directly and then running via a Maven project pointing at my locally 
>>>>> built Camel, so it's sometimes confusing how up-to-date I am.
>>>>> 
>>>>> So I think I have current code, including checkin "CAMEL-3174: Changing 
>>>>> dir with ftp must do one dir at a time." and I think SFTP polling is now 
>>>>> broken for both absolute and relative URLs. See debug walk-throughs and 
>>>>> stack traces below.
>>>>> 
>>>>> Absolute URI with double leading /:
>>>>> sftp://u...@host//home/user/subdir?idempotent=true&idempotentRepository=#myCustomIR&include=.*.log&noop=true&password=******
>>>>> 
>>>>> SftpOperations.changeCurrentDirectory("home/user/subdir") //note there's 
>>>>> no leading slash on the supposedly absolute path!
>>>>>       //splits into chunks successfully, starts looping through chunks
>>>>> doChangeDirectory("home")
>>>>> ChannelSftp.cd("home")
>>>>>       //path=remoteAbsolutePath(path);
>>>>>       //yields "/home/user/home". Doh!
>>>>> 
>>>>> 
>>>>> Relative URI with single leading /:
>>>>> sftp://u...@host/subdir?idempotent=true&idempotentRepository=#myCustomIR&include=.*.log&noop=true&password=******
>>>>> SftpOperations.changeCurrentDirectory("subdir")
>>>>>       //splits into single chunk, starts looping through chunks
>>>>> doChangeDirectory("subdir")
>>>>> ChannelSftp.cd("home")
>>>>>       //path=remoteAbsolutePath(path);
>>>>>       //yields "/home/user/subdir". yay!
>>>>> 
>>>>> ..but then, back in SftpOperations.retrieveFileToStreamInBody, it hits 
>>>>> the "change back to current directory code"
>>>>> changeCurrentDirectory("/home/tomcat"); //now we have a leading slash, 
>>>>> unlike before
>>>>>       //splits info chunks "", "home", and "tomcat". Doh!
>>>>> doChangeDirectory("")
>>>>> ChannelSftp.cd("")
>>>>>       //path=remoteAbsolutePath(path) throws a 
>>>>> StringIndexOutOfBoundsException when it receives empty string.
>>>>> 
>>>>> 
>>>>> Stack trace when attempting to supply absolute path:
>>>>> org.apache.camel.component.file.GenericFileOperationFailedException: 
>>>>> Cannot change directory to: home
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:372)
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:361)
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:428)
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:407)
>>>>>       at 
>>>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:299)
>>>>>       at 
>>>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
>>>>>       at 
>>>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
>>>>>       at 
>>>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>>>>       at 
>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>       at 
>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>       at 
>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>       at 
>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>>>       at 
>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>>>       at 
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>       at 
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>       at java.lang.Thread.run(Thread.java:637)
>>>>> Caused by: 2: No such file
>>>>>       at 
>>>>> com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
>>>>>       at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:1822)
>>>>>       at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:268)
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:370)
>>>>>       ... 16 more
>>>>> 
>>>>> 
>>>>> Stack trace when relative URL tries to restore current working directory:
>>>>> SftpConsumer 2010-10-01 13:41:58,529 -- ERROR -- Caused by: 
>>>>> [org.apache.camel.component.file.GenericFileOperationFailedException - 
>>>>> Cannot change directory to: ]
>>>>> org.apache.camel.component.file.GenericFileOperationFailedException: 
>>>>> Cannot change directory to:
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:372)
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:361)
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:435)
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:407)
>>>>>       at 
>>>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:299)
>>>>>       at 
>>>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
>>>>>       at 
>>>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
>>>>>       at 
>>>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>>>>       at 
>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>       at 
>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>       at 
>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>       at 
>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>>>       at 
>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>>>       at 
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>       at 
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>       at java.lang.Thread.run(Thread.java:637)
>>>>> Caused by: 4:
>>>>>       at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:285)
>>>>>       at 
>>>>> org.apache.camel.component.file.remote.SftpOperations.doChangeDirectory(SftpOperations.java:370)
>>>>>       ... 16 more
>>>>> Caused by: java.lang.StringIndexOutOfBoundsException: String index out of 
>>>>> range: 0
>>>>>       at java.lang.String.charAt(String.java:686)
>>>>>       at 
>>>>> com.jcraft.jsch.ChannelSftp.remoteAbsolutePath(ChannelSftp.java:2359)
>>>>>       at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:264)
>>>>>       ... 17 more
>>>>> 
>>>>> Cheers
>>>>> -Lorrin
>>>>> 
>>>>> On Sep 29, 2010, at 9:37 PM, Claus Ibsen wrote:
>>>>> 
>>>>>> Hi
>>>>>> 
>>>>>> You have not used the latest source code. The stacktrace points to
>>>>>> empty lines etc.
>>>>>> Make sure you build camel-core and camel-ftp using latest source code.
>>>>>> 
>>>>>> Revision: 1002946
>>>>>> Node Kind: directory
>>>>>> Schedule: normal
>>>>>> Last Changed Author: davsclaus
>>>>>> Last Changed Rev: 1002821
>>>>>> Last Changed Date: 2010-09-29 21:31:23 +0200 (Wed, 29 Sep 2010)
>>>>>> 
>>>>>> 
>>>>>> On Wed, Sep 29, 2010 at 11:55 PM, Lorrin Nelson
>>>>>> <lhn_git...@nerdylorrin.net> wrote:
>>>>>>> I'm pretty sure I was already at revision 1002541 before. Now I 
>>>>>>> definitely am. Same Exception. I think the problem is the lack of 
>>>>>>> leading /.
>>>>>>> 
>>>>>>> SftpOperations.retrieveFileToStreamInBody computes path as "tmp/mult", 
>>>>>>> calls changeCurrentDirectory(path), which in turn calls 
>>>>>>> channel.cd(path), which (now we're in com.jcraft.jsch.ChannelSftp) 
>>>>>>> calls path=remoteAbsolutePath(path); and computes path: 
>>>>>>> "/home/test/tmp/mult", which does not exist.
>>>>>>> 
>>>>>>> SftpConsumer 2010-09-29 14:51:50,487 -- ERROR -- Caused by: 
>>>>>>> [org.apache.camel.component.file.GenericFileOperationFailedException - 
>>>>>>> Cannot change current directory to: tmp/mult]
>>>>>>> org.apache.camel.component.file.GenericFileOperationFailedException: 
>>>>>>> Cannot change current directory to: tmp/mult
>>>>>>>       at 
>>>>>>> org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:352)
>>>>>>>       at 
>>>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:408)
>>>>>>>       at 
>>>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:387)
>>>>>>>       at 
>>>>>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:299)
>>>>>>>       at 
>>>>>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
>>>>>>>       at 
>>>>>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
>>>>>>>       at 
>>>>>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>>>>>>       at 
>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>>       at 
>>>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>>>       at 
>>>>>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>>>       at 
>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>>>       at 
>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>>>>>       at 
>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>>>>>       at 
>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>       at 
>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>       at java.lang.Thread.run(Thread.java:637)
>>>>>>> Caused by: 2: No such file
>>>>>>>       at 
>>>>>>> com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
>>>>>>>       at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:1822)
>>>>>>>       at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:268)
>>>>>>>       at 
>>>>>>> org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:350)
>>>>>>>       ... 15 more
>>>>>>> 
>>>>>>> 
>>>>>>> Cheers!
>>>>>>> -Lorrin
>>>>>>> 
>>>>>>> On Sep 29, 2010, at 12:32 PM, Claus Ibsen wrote:
>>>>>>> 
>>>>>>>> Hi
>>>>>>>> 
>>>>>>>> Can you try again with latest source code from trunk. I have changed
>>>>>>>> the logic to change dir one folder at a time.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Wed, Sep 29, 2010 at 7:47 PM, Lorrin Nelson
>>>>>>>> <lhn_git...@nerdylorrin.net> wrote:
>>>>>>>>> Thanks for the quick response. I'm seeing a different failure now 
>>>>>>>>> ("Cannot change current directory to: tmp/mult" rather than "Cannot 
>>>>>>>>> retrieve file: tmp/mult/dummy-5.log"). Is it suspicious that in 
>>>>>>>>> either case there is no leading /?
>>>>>>>>> 
>>>>>>>>> I tried uris
>>>>>>>>> sftp://t...@host//tmp/mult?include=.*\.log
>>>>>>>>> and
>>>>>>>>> sftp://t...@host///tmp/mult?include=.*\.log
>>>>>>>>> 
>>>>>>>>> SftpConsumer 2010-09-29 10:31:48,401 -- ERROR -- Caused by: 
>>>>>>>>> [org.apache.camel.component.file.GenericFileOperationFailedException 
>>>>>>>>> - Cannot change current directory to: tmp/mult]
>>>>>>>>> org.apache.camel.component.file.GenericFileOperationFailedException: 
>>>>>>>>> Cannot change current directory to: tmp/mult
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:352)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:408)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:387)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:299)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>       at java.lang.Thread.run(Thread.java:637)
>>>>>>>>> Caused by: 2: No such file
>>>>>>>>>       at 
>>>>>>>>> com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
>>>>>>>>>       at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:1822)
>>>>>>>>>       at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:268)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.remote.SftpOperations.changeCurrentDirectory(SftpOperations.java:350)
>>>>>>>>>       ... 15 more
>>>>>>>>> 
>>>>>>>>> On a tangentially related note, there's some file name processing 
>>>>>>>>> during the move step that throws a NullPointerException when the URI 
>>>>>>>>> contains a trailing slash:
>>>>>>>>> 
>>>>>>>>> sftp://t...@host/tmp/mult/?include=.*\.log
>>>>>>>>> 
>>>>>>>>> The problem is that GenericFile.changeFileName calls
>>>>>>>>>       newFileName = ObjectHelper.after(newFileName, endpointPath + 
>>>>>>>>> getFileSeparator());
>>>>>>>>> ...without first checking if endPointPath contains a trailing 
>>>>>>>>> separator.
>>>>>>>>> 
>>>>>>>>> E.g.
>>>>>>>>>       newFileName: "tmp/mult/.done/dummy-2.log"
>>>>>>>>>       endPointPath: "tmp/mult/"
>>>>>>>>> 
>>>>>>>>> ObjectHelper.after():
>>>>>>>>>       text: "tmp/mult/.done/dummy-2.log"
>>>>>>>>>       after: "tmp/mult//"
>>>>>>>>> 
>>>>>>>>> text doesn't contain after (because of double //), returns null, 
>>>>>>>>> changeFileName() doesn't expect null, throws NPE.
>>>>>>>>> 
>>>>>>>>> GenericFileOnCompletion 2010-09-29 10:37:37,888 -- ERROR -- Caused 
>>>>>>>>> by: [java.lang.NullPointerException - null]
>>>>>>>>> java.lang.NullPointerException
>>>>>>>>>       at java.io.File.<init>(File.java:222)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFile.changeFileName(GenericFile.java:169)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.strategy.GenericFileExpressionRenamer.renameFile(GenericFileExpressionRenamer.java:41)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.commit(GenericFileRenameProcessStrategy.java:82)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileOnCompletion.processStrategyCommit(GenericFileOnCompletion.java:121)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileOnCompletion.onCompletion(GenericFileOnCompletion.java:83)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileOnCompletion.onComplete(GenericFileOnCompletion.java:52)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(UnitOfWorkHelper.java:55)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:173)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.processor.UnitOfWorkProcessor.doneUow(UnitOfWorkProcessor.java:121)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.processor.UnitOfWorkProcessor.access$000(UnitOfWorkProcessor.java:36)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.processor.UnitOfWorkProcessor$1.done(UnitOfWorkProcessor.java:106)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:130)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:322)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
>>>>>>>>>       at 
>>>>>>>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>       at 
>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>       at java.lang.Thread.run(Thread.java:637)
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Sep 29, 2010, at 2:46 AM, Claus Ibsen wrote:
>>>>>>>>> 
>>>>>>>>>> Hi
>>>>>>>>>> 
>>>>>>>>>> I have committed a fix to the SFTP component. Can you try with latest
>>>>>>>>>> source code from trunk?
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On Tue, Sep 28, 2010 at 7:36 PM, Lorrin <lhn_git...@nerdylorrin.net> 
>>>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> I just bumped into the same problem. I'm running 2.5-SNAPSHOT.
>>>>>>>>>>> 
>>>>>>>>>>> SftpConsumer 2010-09-28 10:31:28,094 -- ERROR -- Caused by:
>>>>>>>>>>> [org.apache.camel.component.file.GenericFileOperationFailedException
>>>>>>>>>>>  -
>>>>>>>>>>> Cannot retrieve file: tmp/mult/dummy-5.log]
>>>>>>>>>>> org.apache.camel.component.file.GenericFileOperationFailedException:
>>>>>>>>>>>  Cannot
>>>>>>>>>>> retrieve file: tmp/mult/dummy-5.log
>>>>>>>>>>>       at
>>>>>>>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:403)
>>>>>>>>>>>       at
>>>>>>>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFile(SftpOperations.java:387)
>>>>>>>>>>>       at
>>>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:299)
>>>>>>>>>>>       at
>>>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155)
>>>>>>>>>>>       at
>>>>>>>>>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121)
>>>>>>>>>>>       at
>>>>>>>>>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97)
>>>>>>>>>>>       at 
>>>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>>>>>>       at
>>>>>>>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>>>>>>>       at 
>>>>>>>>>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>>>>>>>       at
>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>>>>>>>       at
>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>>>>>>>>>       at
>>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>>>>>>>>>       at
>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>>>       at
>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>>>       at java.lang.Thread.run(Thread.java:637)
>>>>>>>>>>> Caused by: 2: No such file
>>>>>>>>>>>       at 
>>>>>>>>>>> com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2289)
>>>>>>>>>>>       at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:901)
>>>>>>>>>>>       at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:870)
>>>>>>>>>>>       at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:849)
>>>>>>>>>>>       at
>>>>>>>>>>> org.apache.camel.component.file.remote.SftpOperations.retrieveFileToStreamInBody(SftpOperations.java:400)
>>>>>>>>>>>       ... 14 more
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> View this message in context: 
>>>>>>>>>>> http://camel.465427.n5.nabble.com/How-to-change-directory-while-using-sftp-component-tp2806817p2857187.html
>>>>>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Claus Ibsen
>>>>>>>>>> Apache Camel Committer
>>>>>>>>>> 
>>>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Claus Ibsen
>>>>>>>> Apache Camel Committer
>>>>>>>> 
>>>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>>>> Open Source Integration: http://fusesource.com
>>>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>> 
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>> 
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>> 
>>> 
>>> 
>> 
>> 
>> 
>> -- 
>> Claus Ibsen
>> Apache Camel Committer
>> 
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>> 
> 
> 

Reply via email to