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.
