From 67647ed7a26eb1c8f910a0311adf17ef6933f774 Mon Sep 17 00:00:00 2001 From: Wei-Chiu Chuang Date: Wed, 23 Oct 2019 15:26:51 -0700 Subject: [PATCH] HDFS-14910. Rename Snapshot with Pre Descendants Fail With IllegalArgumentException. Contributed by Wei-Chiu Chuang. Change-Id: I858b605eae4a9aaf481777488466307e9fb0d50c --- .../org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java index b592c3ff896d8..85d5a45344a9f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeDirectory.java @@ -841,7 +841,8 @@ public void cleanSubtree(ReclaimContext reclaimContext, final int snapshotId, // If the inode has empty diff list and sf is not a // DirectorySnapshottableFeature, remove the feature to save heap. if (sf.getDiffs().isEmpty() && - !(sf instanceof DirectorySnapshottableFeature)) { + !(sf instanceof DirectorySnapshottableFeature) && + getDirectoryWithSnapshotFeature() != null) { this.removeFeature(sf); } } else {