浏览代码

HADOOP-17689. Avoid Potential NPE in org.apache.hadoop.fs (#3008)

Signed-off-by: Takanobu Asanuma <tasanuma@apache.org>
Viraj Jasani 4 年之前
父节点
当前提交
fdd20a3cf4

+ 6 - 1
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DelegateToFileSystem.java

@@ -24,6 +24,7 @@ import java.net.URISyntaxException;
 import java.util.Arrays;
 import java.util.EnumSet;
 import java.util.List;
+import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 
 import org.apache.hadoop.classification.InterfaceAudience;
@@ -90,7 +91,11 @@ public abstract class DelegateToFileSystem extends AbstractFileSystem {
     if (!createParent) { // parent must exist.
       // since this.create makes parent dirs automatically
       // we must throw exception if parent does not exist.
-      final FileStatus stat = getFileStatus(f.getParent());
+      Optional<Path> parentPath = f.getOptionalParentPath();
+      if (!parentPath.isPresent()) {
+        throw new FileNotFoundException("Missing parent:" + f);
+      }
+      final FileStatus stat = getFileStatus(parentPath.get());
       if (stat == null) {
         throw new FileNotFoundException("Missing parent:" + f);
       }