You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Yiqun Lin (JIRA)" <ji...@apache.org> on 2017/05/17 04:38:04 UTC

[jira] [Commented] (HDFS-11831) Ozone: Improve the way of getting test file path in unit tests for Windows

    [ https://issues.apache.org/jira/browse/HDFS-11831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16013503#comment-16013503 ] 

Yiqun Lin commented on HDFS-11831:
----------------------------------

Thanks [~xyao] for the review and commit!

> 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: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org