[ https://issues.apache.org/jira/browse/VFS-120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12520136 ]
Andrew Franklin commented on VFS-120: ------------------------------------- Thanks for the patch above, it worked great for me. I just found one instance where it didn't due my use of the findFiles method. I was getting the following stack trace: Caused by: org.apache.commons.vfs.FileSystemException: Could not find files in "sftp://username:[EMAIL PROTECTED]/tmp". at org.apache.commons.vfs.provider.AbstractFileObject.findFiles(AbstractFileObject.java:1518) at org.apache.commons.vfs.provider.AbstractFileObject.findFiles(AbstractFileObject.java:1061) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.cmss.connectors.brokersync.vfs.RetryRemoteFileSystemProxy.invoke(RetryRemoteFileSystemProxy.java:71) at $Proxy1.findFiles(Unknown Source) at com.cmss.connectors.brokersync.vfs.VfsFileSource.findMatchingSourceFiles(VfsFileSource.java:219) at com.cmss.connectors.brokersync.vfs.VfsFileSource.discover(VfsFileSource.java:194) ... 5 more Caused by: java.lang.NullPointerException at org.apache.commons.vfs.provider.AbstractFileObject.traverse(AbstractFileObject.java:1536) at org.apache.commons.vfs.provider.AbstractFileObject.findFiles(AbstractFileObject.java:1513) ... 14 more I managed to fix this with the following patch: Index: core/src/main/java/org/apache/commons/vfs/provider/sftp/SftpFileObject.java =================================================================== --- core/src/main/java/org/apache/commons/vfs/provider/sftp/SftpFileObject.java (revision 38737) +++ core/src/main/java/org/apache/commons/vfs/provider/sftp/SftpFileObject.java (working copy) @@ -121,7 +121,7 @@ // maybe the channel has some problems, so recreate the channel and retry if (e.id != ChannelSftp.SSH_FX_NO_SUCH_FILE) { - channel.disconnect(); + fileSystem.doCloseCommunicationLink(); channel = fileSystem.getChannel(); setStat(channel.stat(relPath)); Not sure if it's how you guys would fix the issue, but hope it helps. > SFTP-Exception: "com.jcraft.jsch.JSchException: session is down" if the > SFTP-Server was killed and restarted (a normal shutdown of the SFTP-Server > occured no Exception after restart.) > --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: VFS-120 > URL: https://issues.apache.org/jira/browse/VFS-120 > Project: Commons VFS > Issue Type: Bug > Affects Versions: 1.0 > Environment: Tomcat 5.5 > JDK 6.0 (build with JDK 5) > commons-vfs-1.0.jar: > Specification-Title: Commons VFS > Implementation-Version: 1.0 > JSCH: jsch-0.1.31.jar > Reporter: Harald Brabenetz > Assignee: Mario Ivankovits > Priority: Critical > Fix For: 1.1 > > Attachments: SftpFileSystem-patch.txt > > > The error occured after restarting if the SFTP-Server was KILLed!!. > With a normal shutdown of the SFTP-Server, no exception after restarting > occured. > I found no function to force the reset of the session in SftpFileSystem.java > There is a function: > DefaultFileSystemManager manager = > (DefaultFileSystemManager)VFS.getManager(); > manager.freeUnusedResources(); > But this works only if AbstractFileSystem.isReleaseable() returns true. > And this this function return only true if all SFTP-FileObject are removed > from the GarbageCollection (finally()-Methode). > I cannot force a GarbageCollection. > So there is no way to handle this Error! I must restart the VM > (ServletContainer). > org.apache.commons.vfs.FileSystemException: Could not copy > "file:///C:/TEMP/....." to "sftp://......". > at > org.apache.commons.vfs.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:902) > at > com.bearingpoint.orf.chat.core.service.ExportManagerImpl.exportChatMessages(Unknown > Source) > at > com.bearingpoint.orf.chat.core.service.ExportManagerImpl.startExportNow(Unknown > Source) > at > com.bearingpoint.orf.chat.core.service.ExportManagerImpl$ExportManagerRunnable.run(Unknown > Source) > at java.lang.Thread.run(Thread.java:595) > Caused by: org.apache.commons.vfs.FileSystemException: Could not write to > "sftp://chat:[EMAIL PROTECTED]/home/chat/chatfile_12.zip". > at > org.apache.commons.vfs.provider.AbstractFileObject.getOutputStream(AbstractFileObject.java:1227) > at > org.apache.commons.vfs.provider.DefaultFileContent.getOutputStream(DefaultFileContent.java:373) > at > org.apache.commons.vfs.provider.DefaultFileContent.getOutputStream(DefaultFileContent.java:356) > at org.apache.commons.vfs.FileUtil.copyContent(FileUtil.java:100) > at > org.apache.commons.vfs.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:893) > ... 4 more > Caused by: org.apache.commons.vfs.FileSystemException: Could not connect to > SFTP server at "sftp://chat:[EMAIL PROTECTED]/". > at > org.apache.commons.vfs.provider.sftp.SftpFileSystem.getChannel(SftpFileSystem.java:144) > at > org.apache.commons.vfs.provider.sftp.SftpFileObject.doGetOutputStream(SftpFileObject.java:402) > at > org.apache.commons.vfs.provider.AbstractFileObject.getOutputStream(AbstractFileObject.java:1219) > ... 8 more > Caused by: com.jcraft.jsch.JSchException: session is down > at com.jcraft.jsch.Session.openChannel(Session.java:756) > at > org.apache.commons.vfs.provider.sftp.SftpFileSystem.getChannel(SftpFileSystem.java:122) > ... 10 more -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.