Uploaded image for project: 'Commons VFS'
  1. Commons VFS
  2. VFS-294

NullPointerException in FtpFileObject.getChildFile()

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.0
    • Fix Version/s: 2.3
    • Labels:
      None

      Description

      During my efforts to find a solution for VFS-293 I've discovered another bug regarding threadsafety.
      It seems that FtpFileObject is at least not fully threadsafe. When a FtpFileObject is accessed by multiple threads from time to time closing the OutputStream for a file fails with a NullPointerException.

      Stacktrace:

       org.apache.commons.vfs.FileSystemException: Could not close the output stream for file "ftp://localhost/spring-framework-2.5.5/dist/resources/spring-jms-2.5.xsd".
      	at org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:599)
      	at at.js.jtransporter.transporter.VFSTransporter$VFSOutputStream.close(VFSTransporter.java:219)
      	at at.js.jtransporter.util.Utils.close(Utils.java:40)
      	at at.js.jtransporter.worker.resource.ResourceWorker.createFile(ResourceWorker.java:108)
      	at at.js.jtransporter.worker.resource.ResourceWorker.processJob(ResourceWorker.java:52)
      	at at.js.jtransporter.worker.AbstractRunnableWorker.run(AbstractRunnableWorker.java:82)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
      	at java.lang.Thread.run(Thread.java:619)
      Caused by: org.apache.commons.vfs.FileSystemException: Could not close the output stream for file "ftp://localhost/spring-framework-2.5.5/dist/resources/spring-jms-2.5.xsd".
      	at org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.onClose(DefaultFileContent.java:620)
      	at org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:63)
      	at org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:595)
      	... 8 more
      Caused by: java.lang.NullPointerException
      	at org.apache.commons.vfs.provider.ftp.FtpFileObject.getChildFile(FtpFileObject.java:106)
      	at org.apache.commons.vfs.provider.ftp.FtpFileObject.getInfo(FtpFileObject.java:181)
      	at org.apache.commons.vfs.provider.ftp.FtpFileObject.onChange(FtpFileObject.java:269)
      	at org.apache.commons.vfs.provider.AbstractFileObject.endOutput(AbstractFileObject.java:1325)
      	at org.apache.commons.vfs.provider.DefaultFileContent.endOutput(DefaultFileContent.java:459)
      	at org.apache.commons.vfs.provider.DefaultFileContent.access$200(DefaultFileContent.java:44)
      	at org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.onClose(DefaultFileContent.java:616)
      	... 10 more
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              scharfj Johannes Scharf
            • Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: