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

Xi Fang updated HADOOP-9624:
----------------------------

    Description: 
TestFSMainOperationsLocalFileSystem extends Class FSMainOperationsBaseTest. 
PathFilter FSMainOperationsBaseTest#TEST_X_FILTER checks if a path has "x" and 
"X" in its name. 
{code}
final private static PathFilter TEST_X_FILTER = new PathFilter() {
  public boolean accept(Path file) {
    if(file.getName().contains("x") || file.toString().contains("X"))
      return true;
    else
      return false;
{code}




Some of the test cases construct a path by combining path "TEST_ROOT_DIR" with 
a customized partial path. 
The problem is that once the enlistment root path has "X" in  its name, 
"TEST_ROOT_DIR" will also has "X" in its name. The path check will pass even if 
the customized partial path doesn't have "X". However, for this case the path 
filter is supposed to reject this path.

An easy fix is to change "file.toString().contains("X")" to 
"file.getName().contains("X")". Note that org.apache.hadoop.fs.Path.getName() 
only returns the final component of this path.


  was:
TestFSMainOperationsLocalFileSystem failed when the Hadoop enlistment root path 
has "X" in its name. Here is the the root cause of the failures.

TestFSMainOperationsLocalFileSystem extends Class FSMainOperationsBaseTest. 
PathFilter FSMainOperationsBaseTest#TEST_X_FILTER checks if a path has "X" in 
its name. Some of the test cases construct a path by combining path 
"TEST_ROOT_DIR" with a customized partial path. The problem is that once the 
enlistment root path has "X" in  its name, "TEST_ROOT_DIR" will also has "X" in 
its name. The path check will pass even if the customized partial path doesn't 
have "X". However, for this case the path filter is supposed to reject this 
path.

An easy fix is using more complicated char sequence rather than a simple char 
"X".

    
> TestFSMainOperationsLocalFileSystem failed when the Hadoop enlistment root 
> path has "X" in its name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-9624
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9624
>             Project: Hadoop Common
>          Issue Type: Test
>          Components: test
>    Affects Versions: 1-win
>         Environment: Windows
>            Reporter: Xi Fang
>            Priority: Minor
>              Labels: test
>         Attachments: HADOOP-9624.patch
>
>
> TestFSMainOperationsLocalFileSystem extends Class FSMainOperationsBaseTest. 
> PathFilter FSMainOperationsBaseTest#TEST_X_FILTER checks if a path has "x" 
> and "X" in its name. 
> {code}
> final private static PathFilter TEST_X_FILTER = new PathFilter() {
>   public boolean accept(Path file) {
>     if(file.getName().contains("x") || file.toString().contains("X"))
>       return true;
>     else
>       return false;
> {code}
> Some of the test cases construct a path by combining path "TEST_ROOT_DIR" 
> with a customized partial path. 
> The problem is that once the enlistment root path has "X" in  its name, 
> "TEST_ROOT_DIR" will also has "X" in its name. The path check will pass even 
> if the customized partial path doesn't have "X". However, for this case the 
> path filter is supposed to reject this path.
> An easy fix is to change "file.toString().contains("X")" to 
> "file.getName().contains("X")". Note that org.apache.hadoop.fs.Path.getName() 
> only returns the final component of this path.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to