Hello again,

It seems that I can't keep out of trouble when using servicemix-vfs.  While
the component works great in most cases, I've noticed that occasionally a
vfs polling endpoint will not delete files after they have been processed. 
The cause seems to be this exception:

org.apache.commons.vfs.FileSystemException: Could not close the input stream
for file "ftp://{EDITED}/20090726095228081228.txt";.
        at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:522)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint.process(VFSPollingEndpoint.java:165)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint.processFile(VFSPollingEndpoint.java:368)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint.processFileNow(VFSPollingEndpoint.java:325)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint$1.run(VFSPollingEndpoint.java:298)
        at
org.apache.servicemix.executors.impl.ExecutorImpl.execute(ExecutorImpl.java:49)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint.pollFile(VFSPollingEndpoint.java:293)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint.pollFileOrDirectory(VFSPollingEndpoint.java:254)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint.pollFileOrDirectory(VFSPollingEndpoint.java:268)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint.pollFileOrDirectory(VFSPollingEndpoint.java:240)
        at
org.apache.servicemix.vfs.VFSPollingEndpoint.poll(VFSPollingEndpoint.java:229)
        at
org.apache.servicemix.common.endpoints.PollingEndpoint$PollSchedulerTask$1.run(PollingEndpoint.java:202)
        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.vfs.FileSystemException: Could not get FTP
file "ftp://{EDITED}/20090726095228081228.txt";.
        at
org.apache.commons.vfs.provider.ftp.FtpFileObject$FtpInputStream.onClose(FtpFileObject.java:570)
        at
org.apache.commons.vfs.util.MonitorInputStream.close(MonitorInputStream.java:111)
        at java.io.BufferedInputStream.close(BufferedInputStream.java:451)
        at
org.apache.commons.vfs.util.MonitorInputStream.close(MonitorInputStream.java:101)
        at
org.apache.commons.vfs.provider.DefaultFileContent$FileContentInputStream.close(DefaultFileContent.java:518)
        ... 14 more


Environment [Servicemix 4.0, kernel 1.1.0, servicemix-vfs-2009.02-SNAPSHOT]

I've spent hours trying to figure out why the exception is being generated,
and the closest I've come to an answer at this point is that the
FTPClient.completePendingCommand() returns false, which causes an exception
to be generated deep within a VFS provider input stream.  While I think this
may be the result of an FTP configuration problem, it does make me ask the
question:  should the exception from closing the stream be allowed to
propagate and interfere with the deletion of the file?

After all, the file has already been sent over an exchange, and processed by
another service.  There doesn't seem to be a need to fail as a result of
this bizarre exception.  I wish I could give more details about why the
exception is created, but even on the TRACE setting, the logs will only
provide the above exception, so I cannot see any of the FTP status codes.

Anyways, thanks in advance for looking at this.

Bill
-- 
View this message in context: 
http://www.nabble.com/FileSystemException-when-closing-a-VFS-inputstream-tp24726849p24726849.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to