You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Gilles Gaillard (JIRA)" <ji...@apache.org> on 2007/04/06 20:00:37 UTC

[jira] Created: (VFS-123) [FTP Provider] Unvisible files in sub directories with space in their names

[FTP Provider] Unvisible files in sub directories with space in their names
---------------------------------------------------------------------------

                 Key: VFS-123
                 URL: https://issues.apache.org/jira/browse/VFS-123
             Project: Commons VFS
          Issue Type: Bug
         Environment: all
            Reporter: Gilles Gaillard
            Priority: Trivial


In class FTPClientWrapper, The method 
  FTPFile[] listFiles(String relPath)
returns an empty array if the relpath parameter contains a 'space' character (for example: 'test dir/child1'). 
In such a case the FTP server will respond with an error 550 and a message looking like: 'invalid directory 'test'.

The workaround is 
  1. to detect such a case
  2. to perform a CWD to the targeted directory, request the listFiles
  3. CWD to the previous working directory.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Commented: (VFS-123) [FTP Provider] Unvisible files in sub directories with space in their names

Posted by "Tom Duffey (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12505849 ] 

Tom Duffey commented on VFS-123:
--------------------------------

The above patch seems to work OK but you need to check if relPath is null before passing it to URIUtil.endodePath().  Otherwise an IllegalArgumentException is thrown.

> [FTP Provider] Unvisible files in sub directories with space in their names
> ---------------------------------------------------------------------------
>
>                 Key: VFS-123
>                 URL: https://issues.apache.org/jira/browse/VFS-123
>             Project: Commons VFS
>          Issue Type: Bug
>         Environment: all
>            Reporter: Gilles Gaillard
>            Priority: Trivial
>
> In class FTPClientWrapper, The method 
>   FTPFile[] listFiles(String relPath)
> returns an empty array if the relpath parameter contains a 'space' character (for example: 'test dir/child1'). 
> In such a case the FTP server will respond with an error 550 and a message looking like: 'invalid directory 'test'.
> The workaround is 
>   1. to detect such a case
>   2. to perform a CWD to the targeted directory, request the listFiles
>   3. CWD to the previous working directory.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


[jira] Commented: (VFS-123) [FTP Provider] Unvisible files in sub directories with space in their names

Posted by "Gilles Gaillard (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/VFS-123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12487294 ] 

Gilles Gaillard commented on VFS-123:
-------------------------------------

A possible implementation of the workaround:

    private FTPFile[] internalListFiles(String relPath) throws IOException {
      FTPFile[] result = getFtpClient().listFiles(relPath);
      if (result==null || result.length==0){
        boolean mayEncode = !relPath.equals(URIUtil.encodePath(relPath));
        // The system cannot find the file specified.
        if (mayEncode && getFtpClient().getReplyCode()==FTPReply.CODE_550){
          String pwd = getFtpClient().printWorkingDirectory();
          try {
            getFtpClient().changeWorkingDirectory(relPath);
            result = getFtpClient().listFiles();
          } 
          finally {
            getFtpClient().changeWorkingDirectory(pwd);
          }
        }
      }
      return result;
    }
    
    public FTPFile[] listFiles(String relPath) throws IOException
    {
        try
        {
            return internalListFiles(relPath);
        }
        catch (IOException e)
        {
            disconnect();
            return internalListFiles(relPath);
        }
    }


> [FTP Provider] Unvisible files in sub directories with space in their names
> ---------------------------------------------------------------------------
>
>                 Key: VFS-123
>                 URL: https://issues.apache.org/jira/browse/VFS-123
>             Project: Commons VFS
>          Issue Type: Bug
>         Environment: all
>            Reporter: Gilles Gaillard
>            Priority: Trivial
>
> In class FTPClientWrapper, The method 
>   FTPFile[] listFiles(String relPath)
> returns an empty array if the relpath parameter contains a 'space' character (for example: 'test dir/child1'). 
> In such a case the FTP server will respond with an error 550 and a message looking like: 'invalid directory 'test'.
> The workaround is 
>   1. to detect such a case
>   2. to perform a CWD to the targeted directory, request the listFiles
>   3. CWD to the previous working directory.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org