瀏覽代碼

HDFS-8554. TestDatanodeLayoutUpgrade fails on Windows. Contributed by Chris Nauroth.

(cherry picked from commit 0e80d51983942dca3348c8a8401bad3ecbaab010)
cnauroth 10 年之前
父節點
當前提交
8ee50d8ca7

+ 6 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java

@@ -727,6 +727,12 @@ public class FileUtil {
       }
     }
 
+    if (entry.isLink()) {
+      File src = new File(outputDir, entry.getLinkName());
+      HardLink.createHardLink(src, outputFile);
+      return;
+    }
+
     int count;
     byte data[] = new byte[2048];
     BufferedOutputStream outputStream = new BufferedOutputStream(

+ 2 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -527,6 +527,8 @@ Release 2.8.0 - UNRELEASED
     HDFS-8539. Hdfs doesnt have class 'debug' in windows.
     (Anu Engineer via cnauroth)
 
+    HDFS-8554. TestDatanodeLayoutUpgrade fails on Windows. (cnauroth)
+
 Release 2.7.1 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 4 - 4
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeLayoutUpgrade.java

@@ -37,11 +37,11 @@ public class TestDatanodeLayoutUpgrade {
     upgrade.unpackStorage(HADOOP24_DATANODE, HADOOP_DATANODE_DIR_TXT);
     Configuration conf = new Configuration(TestDFSUpgradeFromImage.upgradeConf);
     conf.set(DFSConfigKeys.DFS_DATANODE_DATA_DIR_KEY,
-        System.getProperty("test.build.data") + File.separator +
-            "dfs" + File.separator + "data");
+        new File(System.getProperty("test.build.data"),
+            "dfs" + File.separator + "data").toURI().toString());
     conf.set(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY,
-        System.getProperty("test.build.data") + File.separator +
-            "dfs" + File.separator + "name");
+        new File(System.getProperty("test.build.data"),
+            "dfs" + File.separator + "name").toURI().toString());
     upgrade.upgradeAndVerify(new MiniDFSCluster.Builder(conf).numDataNodes(1)
     .manageDataDfsDirs(false).manageNameDfsDirs(false), null);
   }