Synapse
  1. Synapse
  2. SYNAPSE-847

VFS transport throws exception, when try to pull large (>150kb) file from FTP location

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.0
    • Component/s: Transports
    • Labels:
      None

      Description

      When try to pull larger file from an ftp location , i face the following issue[1]..I used following proxy configuration[2]

      The issue is here, vfs transport listener closes the stream before the vfs transport sender reads it.. As a workaround, i added a Stringbuffer @ listener with a limited buffer size to read the soap envelope..
      Attached the patch with this workaround..
      Please review and commit

      [1]
      r the specified or optional timeout
      [2012-02-29 15:39:19,321] ERROR - VFSTransportListener Error closing stream
      org.apache.commons.vfs2.FileSystemException: Could not close the input stream for file "ftp://anonymous@localhost/in/textfile.txt?vfs.passive=true".
      at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:612)
      at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:566)
      at org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:306)
      at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:157)
      at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:106)
      at org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
      at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
      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: org.apache.commons.vfs2.FileSystemException: Could not get FTP file "ftp://anonymous@localhost/in/textfile.txt?vfs.passive=true".
      at org.apache.commons.vfs2.provider.ftp.FtpFileObject$FtpInputStream.onClose(FtpFileObject.java:731)
      at org.apache.commons.vfs2.util.MonitorInputStream.close(MonitorInputStream.java:140)
      at java.io.BufferedInputStream.close(BufferedInputStream.java:451)
      at org.apache.commons.vfs2.util.MonitorInputStream.close(MonitorInputStream.java:130)
      at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:608)
      ... 9 more
      [2012-02-29 15:39:19,324] ERROR - VFSTransportListener Error processing File URI : ftp://anonymous@localhost/in/textfile.txt?vfs.passive=true
      org.apache.axis2.AxisFault: Error closing stream
      at org.apache.axis2.transport.base.AbstractTransportListener.handleException(AbstractTransportListener.java:343)
      at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:568)
      at org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:306)
      at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:157)
      at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:106)
      at org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
      at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
      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: org.apache.commons.vfs2.FileSystemException: Could not close the input stream for file "ftp://anonymous@localhost/in/textfile.txt?vfs.passi
      ve=true".
      at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:612)
      at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:566)
      ... 8 more
      Caused by: org.apache.commons.vfs2.FileSystemException: Could not get FTP file "ftp://anonymous@localhost/in/textfile.txt?vfs.passive=true".
      at org.apache.commons.vfs2.provider.ftp.FtpFileObject$FtpInputStream.onClose(FtpFileObject.java:731)

      1. vfsTransport.patch
        3 kB
        Vijayaratha Vijayasingam

        Activity

        Hiranya Jayathilaka made changes -
        Fix Version/s 3.0 [ 12324903 ]
        Fix Version/s FUTURE [ 12313086 ]
        Hiranya Jayathilaka made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Vijayaratha Vijayasingam made changes -
        Attachment vfsTransport.patch [ 12518010 ]
        Vijayaratha Vijayasingam made changes -
        Attachment vfsListenerPatch.patch [ 12516543 ]
        Udayanga Wickramasinghe made changes -
        Assignee Udayanga Wickramasinghe [ udayangaw@wso2.com ]
        Vijayaratha Vijayasingam made changes -
        Description When try to pull larger file from an ftp location , i face the following issue[1]..I used following proxy configuration[2]


        The issue is here, vfs transport listener closes the stream before the vfs transport sender reads it.. As a workaround, i added a Stringbuffer @ listener with a limited buffer size to read the soap envelope..
        Attached the patch with this workaround..
        Please review and commit


        [1]
        2012-02-15 14:34:53,066 [-] [vfs-Worker-2] ERROR VFSTransportListener Error closing stream
        org.apache.commons.vfs2.FileSystemException: Could not close the input stream for file "ftp://sonat\eman:***@ftp.sonat.se/IPS/Shp_110201_050048.txt?vfs.passive=true".
               at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:612)
               at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:566)
               at org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:306)
               at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:157)
               at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:106)
               at org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
               at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
               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:662)
        Caused by: org.apache.commons.vfs2.FileSystemException: Could not get FTP file "ftp://sonat\eman:***@ftp.sonat.se/IPS/Shp_110201_050048.txt?vfs.passive=true".
               at org.apache.commons.vfs2.provider.ftp.FtpFileObject$FtpInputStream.onClose(FtpFileObject.java:731)
               at org.apache.commons.vfs2.util.MonitorInputStream.close(MonitorInputStream.java:140)
               at java.io.BufferedInputStream.close(BufferedInputStream.java:451)
               at org.apache.commons.vfs2.util.MonitorInputStream.close(MonitorInputStream.java:130)
               at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:608)
               ... 9 more
        2012-02-15 14:34:53,067 [-] [vfs-Worker-2] ERROR VFSTransportListener Error processing File URI : ftp://sonat\eman:Someniller.,.,@ftp.sonat.se/IPS/Shp_110201_050048.txt?vfs.passive=true
        org.apache.axis2.AxisFault: Error closing stream
               at org.apache.axis2.transport.base.AbstractTransportListener.handleException(AbstractTransportListener.java:343)
               at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:568)
               at org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:306)
               at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:157)
               at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:106)
               at org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
               at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
               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:662)
        When try to pull larger file from an ftp location , i face the following issue[1]..I used following proxy configuration[2]


        The issue is here, vfs transport listener closes the stream before the vfs transport sender reads it.. As a workaround, i added a Stringbuffer @ listener with a limited buffer size to read the soap envelope..
        Attached the patch with this workaround..
        Please review and commit


        [1]
        r the specified or optional timeout
        [2012-02-29 15:39:19,321] ERROR - VFSTransportListener Error closing stream
        org.apache.commons.vfs2.FileSystemException: Could not close the input stream for file "ftp://anonymous@localhost/in/textfile.txt?vfs.passive=true".
                at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:612)
                at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:566)
                at org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:306)
                at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:157)
                at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:106)
                at org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
                at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
                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: org.apache.commons.vfs2.FileSystemException: Could not get FTP file "ftp://anonymous@localhost/in/textfile.txt?vfs.passive=true".
                at org.apache.commons.vfs2.provider.ftp.FtpFileObject$FtpInputStream.onClose(FtpFileObject.java:731)
                at org.apache.commons.vfs2.util.MonitorInputStream.close(MonitorInputStream.java:140)
                at java.io.BufferedInputStream.close(BufferedInputStream.java:451)
                at org.apache.commons.vfs2.util.MonitorInputStream.close(MonitorInputStream.java:130)
                at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:608)
                ... 9 more
        [2012-02-29 15:39:19,324] ERROR - VFSTransportListener Error processing File URI : ftp://anonymous@localhost/in/textfile.txt?vfs.passive=true
        org.apache.axis2.AxisFault: Error closing stream
                at org.apache.axis2.transport.base.AbstractTransportListener.handleException(AbstractTransportListener.java:343)
                at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:568)
                at org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:306)
                at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:157)
                at org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:106)
                at org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
                at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:173)
                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: org.apache.commons.vfs2.FileSystemException: Could not close the input stream for file "ftp://anonymous@localhost/in/textfile.txt?vfs.passi
        ve=true".
                at org.apache.commons.vfs2.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:612)
                at org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:566)
                ... 8 more
        Caused by: org.apache.commons.vfs2.FileSystemException: Could not get FTP file "ftp://anonymous@localhost/in/textfile.txt?vfs.passive=true".
                at org.apache.commons.vfs2.provider.ftp.FtpFileObject$FtpInputStream.onClose(FtpFileObject.java:731)
        Vijayaratha Vijayasingam made changes -
        Field Original Value New Value
        Attachment vfsListenerPatch.patch [ 12516543 ]
        Vijayaratha Vijayasingam created issue -

          People

          • Assignee:
            Udayanga Wickramasinghe
            Reporter:
            Vijayaratha Vijayasingam
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development