[
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]