[ https://issues.apache.org/jira/browse/CAMEL-3749?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen updated CAMEL-3749: ------------------------------- Description: When the fileName uri option does not contain any folder information, ie: "fileName=filename.txt" the producer runs in exception The exception is thrown when the producer calls ls method of jsch ChannelSftp passing an empty string as directory parameter in org.apache.camel.component.file.remote.SftpOperations.existsFile line 704 sample URI: sftp://user@hostname:22?disconnect=true&eagerDeleteTargetFile=false%3Bstepwise%3Dfalse&fileName=SYSTEM01&password=******&soTimeout=30000&tempFileName=%24%7Bfile%3Aname.noext%7D.tmp Stack trace: {code} [2011-03-03 14:40:40,827][RecipientList (thread #4)][ERROR][org.apache.camel.processor.DefaultErrorHandler][] Failed delivery for exchangeId: ID-******-33331-1299163043684-0-10. Exhausted after delivery attempt: 1 caught: org.apache.camel.component.file.GenericFileOperationFailedExcept on: org.apache.camel.component.file.GenericFileOperationFailedException: at org.apache.camel.component.file.remote.SftpOperations.existsFile(SftpOperations.java:727) at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:130) at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:50) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:109) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:103) at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:716) at org.apache.camel.processor.MulticastProcessor.access$100(MulticastProcessor.java:78) at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:282) at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:274) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) 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:619) Caused by: 4: at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1353) at org.apache.camel.component.file.remote.SftpOperations.existsFile(SftpOperations.java:704) ... 20 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:2367) at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1185) ... 21 more {code} was: When the fileName uri option does not contain any folder information, ie: "fileName=filename.txt" the producer runs in exception The exception is thrown when the producer calls ls method of jsch ChannelSftp passing an empty string as directory parameter in org.apache.camel.component.file.remote.SftpOperations.existsFile line 704 sample URI: sftp://user@hostname:22?disconnect=true&eagerDeleteTargetFile=false%3Bstepwise%3Dfalse&fileName=SYSTEM01&password=******&soTimeout=30000&tempFileName=%24%7Bfile%3Aname.noext%7D.tmp Stack trace: [2011-03-03 14:40:40,827][RecipientList (thread #4)][ERROR][org.apache.camel.processor.DefaultErrorHandler][] Failed delivery for exchangeId: ID-******-33331-1299163043684-0-10. Exhausted after delivery attempt: 1 caught: org.apache.camel.component.file.GenericFileOperationFailedExcept on: org.apache.camel.component.file.GenericFileOperationFailedException: at org.apache.camel.component.file.remote.SftpOperations.existsFile(SftpOperations.java:727) at org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:130) at org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:50) at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:109) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:103) at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:716) at org.apache.camel.processor.MulticastProcessor.access$100(MulticastProcessor.java:78) at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:282) at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:274) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) 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:619) Caused by: 4: at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1353) at org.apache.camel.component.file.remote.SftpOperations.existsFile(SftpOperations.java:704) ... 20 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:2367) at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1185) ... 21 more Priority: Major (was: Critical) Fix Version/s: 2.7.0 Assignee: Claus Ibsen Can you report the issue to JSCH as well? Its in fact their library which doesn't accept an empty string or provide a better error message if an empty string is invalid. > sftp producer runs in exception fileName does not contain any path information > ------------------------------------------------------------------------------ > > Key: CAMEL-3749 > URL: https://issues.apache.org/jira/browse/CAMEL-3749 > Project: Camel > Issue Type: Bug > Components: camel-ftp > Affects Versions: 2.6.0 > Reporter: Marco Crivellaro > Assignee: Claus Ibsen > Fix For: 2.7.0 > > > When the fileName uri option does not contain any folder information, ie: > "fileName=filename.txt" the producer runs in exception > The exception is thrown when the producer calls ls method of jsch ChannelSftp > passing an empty string as directory parameter in > org.apache.camel.component.file.remote.SftpOperations.existsFile line 704 > sample URI: > sftp://user@hostname:22?disconnect=true&eagerDeleteTargetFile=false%3Bstepwise%3Dfalse&fileName=SYSTEM01&password=******&soTimeout=30000&tempFileName=%24%7Bfile%3Aname.noext%7D.tmp > Stack trace: > {code} > [2011-03-03 14:40:40,827][RecipientList (thread > #4)][ERROR][org.apache.camel.processor.DefaultErrorHandler][] Failed delivery > for exchangeId: ID-******-33331-1299163043684-0-10. Exhausted after delivery > attempt: 1 caught: > org.apache.camel.component.file.GenericFileOperationFailedExcept on: > org.apache.camel.component.file.GenericFileOperationFailedException: > at > org.apache.camel.component.file.remote.SftpOperations.existsFile(SftpOperations.java:727) > > at > org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:130) > > at > org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:50) > > at > org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50) > > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:77) > > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299) > > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) > > at > org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:109) > > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:103) > > at > org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:716) > > at > org.apache.camel.processor.MulticastProcessor.access$100(MulticastProcessor.java:78) > > at > org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:282) > > at > org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:274) > > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > 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:619) > Caused by: 4: > at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1353) > at > org.apache.camel.component.file.remote.SftpOperations.existsFile(SftpOperations.java:704) > > ... 20 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:2367) > at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1185) > ... 21 more > {code} -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira