diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java index 5fd89c4c85..9b9e213a54 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java @@ -731,6 +731,12 @@ private static void unpackEntries(TarArchiveInputStream tis, } } + 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( diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 853a022d54..73574b6b98 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -864,6 +864,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 diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeLayoutUpgrade.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeLayoutUpgrade.java index 343320c032..224abea512 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeLayoutUpgrade.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDatanodeLayoutUpgrade.java @@ -37,11 +37,11 @@ public void testUpgradeToIdBasedLayout() throws IOException { 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); }