Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-7240 Scaling HDFS
  3. HDFS-11831

Ozone: Improve the way of getting test file path in unit tests for Windows

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • HDFS-7240
    • HDFS-7240
    • ozone
    • None
    • Reviewed

    Description

      Found two test (TestContainerMapping and TestBlockManager) ran failed in Windows caused by invalid test path generated. The stack info of one failed test:

      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)
      

      The similar issue HDFS-11619.

      The related codes:

      URL p = conf.getClass().getResource("");
      String path = p.getPath().concat(...));
      

      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.

      Attachments

        Activity

          People

            linyiqun Yiqun Lin
            linyiqun Yiqun Lin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: