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

        Marco Crivellaro created issue -
        Marco Crivellaro made changes -
        Field Original Value New Value
        Priority Major [ 3 ] Critical [ 2 ]
        Claus Ibsen made changes -
        Assignee Claus Ibsen [ davsclaus ]
        Fix Version/s 2.7.0 [ 12316021 ]
        Priority Critical [ 2 ] Major [ 3 ]
        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
        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}
        Claus Ibsen made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Daniel Kulp made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development