[
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.