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

Guillaume Nodet resolved SSHD-444.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 1.0.0
         Assignee: Guillaume Nodet

https://git-wip-us.apache.org/repos/asf?p=mina-sshd.git;a=commitdiff;h=cccec812bf9a0571da7bffee651e9c741c402e39

> Handle correctly inaccessible paths in Scp and Sftp subsystems
> --------------------------------------------------------------
>
>                 Key: SSHD-444
>                 URL: https://issues.apache.org/jira/browse/SSHD-444
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 1.0.0
>            Reporter: Goldstein Lyor
>            Assignee: Guillaume Nodet
>             Fix For: 1.0.0
>
>         Attachments: 
> 0043-SSHD-444-Handle-correctly-inaccessible-paths-in-Scp-.patch, Capture.PNG
>
>
> Turns out that just asking _Files.exists(...)_ is not enough - according to 
> the [Java tutorial on checking if a file or directory 
> exists|http://docs.oracle.com/javase/tutorial/essential/io/check.html]:
> {panel}
> The methods in the _Path_ class are syntactic, meaning that they operate on 
> the _Path_ instance. But eventually you must access the file system to verify 
> that a particular _Path_ exists, or does not exist. You can do so with the 
> _exists(Path, LinkOption...)_ and the _notExists(Path, LinkOption...)_ 
> methods. *Note* that _!Files.exists(path)_ is *not( equivalent to 
> _Files.notExists(path)_. When you are testing a file's existence, three 
> results are possible:
> - The file is verified to exist.
> - The file is verified to not exist.
> - The file's status is unknown. This result can occur when the program does 
> not have access to the file.
> If *both* _exists_ and *notExists* return false, the existence of the file 
> cannot be verified.
> {panel}
> I have therefore implemented _IOUtils#checkFileExistence_ method that serves 
> as a *central* method for such checks, and then added the relevant logic in 
> SCP/SFTP. *Note*: specifically for SFTP, whenever the existence cannot be 
> determined (i.e., _null_ is returned) the _unsupportedAttributePolicy_ is 
> consulted. The default behavior is geared towards being *lenient* - i.e., 
> provide as much information as possible even for inaccessible files (e.g., 
> their name and permissions) knowing that if the client tries to 
> read/write/delete them it will be blocked anyway.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to