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

Xiaoyu Yao updated HDFS-11831:
------------------------------
       Resolution: Fixed
     Hadoop Flags: Reviewed
    Fix Version/s: HDFS-7240
           Status: Resolved  (was: Patch Available)

Thanks [~linyiqun] for the contribution. I've commit the fix to the feature 
branch. 

> Ozone: Improve the way of getting test file path in unit tests for Windows
> --------------------------------------------------------------------------
>
>                 Key: HDFS-11831
>                 URL: https://issues.apache.org/jira/browse/HDFS-11831
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: ozone
>    Affects Versions: HDFS-7240
>            Reporter: Yiqun Lin
>            Assignee: Yiqun Lin
>             Fix For: HDFS-7240
>
>         Attachments: HDFS-11831-HDFS-7240.001.patch
>
>
> Found two test ({{TestContainerMapping}} and {{TestBlockManager}}) ran failed 
> in Windows caused by invalid test path generated. The stack info of one 
> failed test:
> {noformat}
> java.nio.file.InvalidPathException: Illegal char <:> at index 4: 
> file:/D:/Users/yiqun01.lin/.m2/repository/org/apache/hadoop/hadoop-common/3.0.0-alpha3-SNAPSHOT/hadoop-common-3.0.0-alpha3-SNAPSHOT.jar!/org/apache/hadoop/conf/TestContainerMapping
>       at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
>       at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
>       at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
>       at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
>       at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
>       at java.nio.file.Paths.get(Paths.java:84)
>       at 
> org.apache.hadoop.ozone.scm.block.TestBlockManager.setUp(TestBlockManager.java:68)
> {noformat}
> The similar issue HDFS-11619.
> The related codes:
> {noformat}
> URL p = conf.getClass().getResource("");
> String path = p.getPath().concat(...));
> {noformat}
> We would be better not to use the this way to get a test path since it will 
> get a incorrect path when the OS env is Windows. Although sometimes the wrong 
> path can be corrected by normalize method in File class. But in some other 
> cases, example in {{Paths.get(path).toFile()}}, the wrong path will lead the 
> failure.
> Actually in COMMON, it has already provided some utility methods to help us 
> get the valid test file/path in unit testing. We could use this to replace 
> the old way.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to