Camel
  1. Camel
  2. CAMEL-3749

sftp producer runs in exception fileName does not contain any path information

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.6.0
    • Fix Version/s: 2.7.0
    • Component/s: camel-ftp
    • Labels:
      None

      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:

      [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
      

        Activity

        Hide
        Claus Ibsen added a comment -

        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.

        Show
        Claus Ibsen added a comment - 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.
        Hide
        Marco Crivellaro added a comment - - edited

        Tried to commit a bug to jsch but unfortunately while trying to create a new issue report the server runs in error

        Show
        Marco Crivellaro added a comment - - edited Tried to commit a bug to jsch but unfortunately while trying to create a new issue report the server runs in error
        Hide
        Claus Ibsen added a comment -

        The issue is only when using the tempFileName option

        Show
        Claus Ibsen added a comment - The issue is only when using the tempFileName option
        Hide
        Claus Ibsen added a comment -

        I have fixed it on trunk. I use "." now which is current path.

        trunk: 1077904.

        Show
        Claus Ibsen added a comment - I have fixed it on trunk. I use "." now which is current path. trunk: 1077904.
        Hide
        Marco Crivellaro added a comment -

        works for me

        Show
        Marco Crivellaro added a comment - works for me

          People

          • Assignee:
            Claus Ibsen
            Reporter:
            Marco Crivellaro
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development