[ 
https://issues.apache.org/jira/browse/VFS-665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yogesh Kumar updated VFS-665:
-----------------------------
    Description: 
 
 I am using the below class to transfer a file from one folder to another on a 
server I am using commons-vfs-2.0 jar. :

import org.apache.commons.vfs.FileObject;

import org.apache.commons.vfs.FileSystemException;

import org.apache.commons.vfs.FileSystemOptions;

import org.apache.commons.vfs.Selectors;

import org.apache.commons.vfs.impl.StandardFileSystemManager;

import org.apache.commons.vfs.provider.sftp.SftpFileSystemConfigBuilder;

public class SFTPTest {

public static void main(String args[]) {

try

{ String ftpUrlSrc = "sftp.host.address" + ":" + "8022" + "/SRC_FOLDER"; String 
sftpUriSrc = "sftp://"; + "sftpUser" + ":" + "pass$123" + "@" + ftpUrlSrc;

String ftpUrlDest = "sftp.host.address" + ":" + "8022" + "/DEST_FOLDER"; String 
sftpUriDest = "sftp://"; + "sftpUser" + ":" + "pass$123" + "@" + ftpUrlDest; 
StandardFileSystemManager manager = new StandardFileSystemManager(); 
FileSystemOptions opts = new FileSystemOptions(); 
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no"); 
manager.init();

FileObject fileObjectSrc = manager.resolveFile(sftpUriSrc + "/" + 
"trial_file.tar.gz", opts); FileObject fileObjectDest = 
manager.resolveFile(sftpUriDest + "/" + "trial_file.tar.gz", opts); 
fileObjectDest.copyFrom(fileObjectSrc, Selectors.SELECT_SELF);

//The below moveTo() call works without any issue.

fileObjectSrc.moveTo(fileObjectDest);

}

catch (FileSystemException e)

{ // TODO Auto-generated catch block e.printStackTrace(); }

}

}

The below exception is being thrown:

 org.apache.commons.vfs.FileSystemException: Could not copy 
"sftp://sftpUser:***@sftp.host.address:8022/SRC_FOLDER/trial_file.tar.gz"; to 
"sftp://sftpUser:***@sftp.host.address:8022/DEST_FOLDER/trial_file.tar.gz";. at 
org.apache.commons.vfs.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:1032)
 at SFTPTest.main(SFTPTest.java:27)* 

*Caused by: org.apache.commons.vfs.FileSystemException: Could not close the 
output stream for file 
"sftp://sftpUser:***@sftp.host.address:8022/DEST_FOLDER/trial_file.tar.gz";. at 
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:686)
 at org.apache.commons.vfs.FileUtil.copyContent(FileUtil.java:119) at 
org.apache.commons.vfs.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:1023)
 ... 1 more

Caused by: java.io.IOException: 4: Transfer failed possibly due to access 
restrictions. at com.jcraft.jsch.ChannelSftp$1.flush(ChannelSftp.java:858) at 
com.jcraft.jsch.ChannelSftp$1.close(ChannelSftp.java:867) at 
java.io.FilterOutputStream.close(FilterOutputStream.java:160) at 
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:56)
 at java.io.FilterOutputStream.close(FilterOutputStream.java:160) at 
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:56)
 at 
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:682)
 ... 3 more}}\{{}}

  was:
-1down vote 
[favorite|https://stackoverflow.com/questions/51194702/apache-vfs-fileobject-copyfrom-exception?noredirect=1]
 
I am using the below class to transfer a file from one folder to another on a 
server I am using commons-vfs-2.0 jar. :

{{import org.apache.commons.vfs.FileObject; import 
org.apache.commons.vfs.FileSystemException; import 
org.apache.commons.vfs.FileSystemOptions; import 
org.apache.commons.vfs.Selectors; import 
org.apache.commons.vfs.impl.StandardFileSystemManager; import 
org.apache.commons.vfs.provider.sftp.SftpFileSystemConfigBuilder; public class 
SFTPTest { public static void main(String args[]) { try { String ftpUrlSrc = 
"sftp.host.address" + ":" + "8022" + "/SRC_FOLDER"; String sftpUriSrc = 
"sftp://"; + "sftpUser" + ":" + "pass$123" + "@" + ftpUrlSrc; String ftpUrlDest 
= "sftp.host.address" + ":" + "8022" + "/DEST_FOLDER"; String sftpUriDest = 
"sftp://"; + "sftpUser" + ":" + "pass$123" + "@" + ftpUrlDest; 
StandardFileSystemManager manager = new StandardFileSystemManager(); 
FileSystemOptions opts = new FileSystemOptions(); 
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no"); 
manager.init(); FileObject fileObjectSrc = manager.resolveFile(sftpUriSrc + "/" 
+ "trial_file.tar.gz", opts); FileObject fileObjectDest = 
manager.resolveFile(sftpUriDest + "/" + "trial_file.tar.gz", opts); 
fileObjectDest.copyFrom(fileObjectSrc, Selectors.SELECT_SELF); //The below 
moveTo() call works without any issue. fileObjectSrc.moveTo(fileObjectDest); } 
catch (FileSystemException e) { // TODO Auto-generated catch block 
e.printStackTrace(); } } }}}

The below exception is being thrown:

{{ org.apache.commons.vfs.FileSystemException: Could not copy 
"sftp://sftpUser:***@sftp.host.address:8022/SRC_FOLDER/trial_file.tar.gz"; to 
"sftp://sftpUser:***@sftp.host.address:8022/DEST_FOLDER/trial_file.tar.gz";. at 
org.apache.commons.vfs.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:1032)
 at SFTPTest.main(SFTPTest.java:27) Caused by: 
org.apache.commons.vfs.FileSystemException: Could not close the output stream 
for file 
"sftp://sftpUser:***@sftp.host.address:8022/DEST_FOLDER/trial_file.tar.gz";. at 
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:686)
 at org.apache.commons.vfs.FileUtil.copyContent(FileUtil.java:119) at 
org.apache.commons.vfs.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:1023)
 ... 1 more Caused by: java.io.IOException: 4: Transfer failed possibly due to 
access restrictions. at 
com.jcraft.jsch.ChannelSftp$1.flush(ChannelSftp.java:858) at 
com.jcraft.jsch.ChannelSftp$1.close(ChannelSftp.java:867) at 
java.io.FilterOutputStream.close(FilterOutputStream.java:160) at 
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:56)
 at java.io.FilterOutputStream.close(FilterOutputStream.java:160) at 
org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:56)
 at 
org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:682)
 ... 3 more}}{{}}


> Apache VFS FileObject copyFrom() Exception
> ------------------------------------------
>
>                 Key: VFS-665
>                 URL: https://issues.apache.org/jira/browse/VFS-665
>             Project: Commons VFS
>          Issue Type: Bug
>    Affects Versions: 2.0
>            Reporter: Yogesh Kumar
>            Priority: Critical
>              Labels: FileObject, vfs
>
>  
>  I am using the below class to transfer a file from one folder to another on 
> a server I am using commons-vfs-2.0 jar. :
> import org.apache.commons.vfs.FileObject;
> import org.apache.commons.vfs.FileSystemException;
> import org.apache.commons.vfs.FileSystemOptions;
> import org.apache.commons.vfs.Selectors;
> import org.apache.commons.vfs.impl.StandardFileSystemManager;
> import org.apache.commons.vfs.provider.sftp.SftpFileSystemConfigBuilder;
> public class SFTPTest {
> public static void main(String args[]) {
> try
> { String ftpUrlSrc = "sftp.host.address" + ":" + "8022" + "/SRC_FOLDER"; 
> String sftpUriSrc = "sftp://"; + "sftpUser" + ":" + "pass$123" + "@" + 
> ftpUrlSrc;
> String ftpUrlDest = "sftp.host.address" + ":" + "8022" + "/DEST_FOLDER"; 
> String sftpUriDest = "sftp://"; + "sftpUser" + ":" + "pass$123" + "@" + 
> ftpUrlDest; StandardFileSystemManager manager = new 
> StandardFileSystemManager(); FileSystemOptions opts = new 
> FileSystemOptions(); 
> SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, 
> "no"); manager.init();
> FileObject fileObjectSrc = manager.resolveFile(sftpUriSrc + "/" + 
> "trial_file.tar.gz", opts); FileObject fileObjectDest = 
> manager.resolveFile(sftpUriDest + "/" + "trial_file.tar.gz", opts); 
> fileObjectDest.copyFrom(fileObjectSrc, Selectors.SELECT_SELF);
> //The below moveTo() call works without any issue.
> fileObjectSrc.moveTo(fileObjectDest);
> }
> catch (FileSystemException e)
> { // TODO Auto-generated catch block e.printStackTrace(); }
> }
> }
> The below exception is being thrown:
>  org.apache.commons.vfs.FileSystemException: Could not copy 
> "sftp://sftpUser:***@sftp.host.address:8022/SRC_FOLDER/trial_file.tar.gz"; to 
> "sftp://sftpUser:***@sftp.host.address:8022/DEST_FOLDER/trial_file.tar.gz";. 
> at 
> org.apache.commons.vfs.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:1032)
>  at SFTPTest.main(SFTPTest.java:27)* 
> *Caused by: org.apache.commons.vfs.FileSystemException: Could not close the 
> output stream for file 
> "sftp://sftpUser:***@sftp.host.address:8022/DEST_FOLDER/trial_file.tar.gz";. 
> at 
> org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:686)
>  at org.apache.commons.vfs.FileUtil.copyContent(FileUtil.java:119) at 
> org.apache.commons.vfs.provider.AbstractFileObject.copyFrom(AbstractFileObject.java:1023)
>  ... 1 more
> Caused by: java.io.IOException: 4: Transfer failed possibly due to access 
> restrictions. at com.jcraft.jsch.ChannelSftp$1.flush(ChannelSftp.java:858) at 
> com.jcraft.jsch.ChannelSftp$1.close(ChannelSftp.java:867) at 
> java.io.FilterOutputStream.close(FilterOutputStream.java:160) at 
> org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:56)
>  at java.io.FilterOutputStream.close(FilterOutputStream.java:160) at 
> org.apache.commons.vfs.util.MonitorOutputStream.close(MonitorOutputStream.java:56)
>  at 
> org.apache.commons.vfs.provider.DefaultFileContent$FileContentOutputStream.close(DefaultFileContent.java:682)
>  ... 3 more}}\{{}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to