浏览代码

HADOOP-12718. Incorrect error message by fs -put local dir without permission. (John Zhuge via Yongjun Zhang)

(cherry picked from commit 97056c3355810a803f07baca89b89e2bf6bb7201)
Yongjun Zhang 9 年之前
父节点
当前提交
62206dd2ed

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -961,6 +961,9 @@ Release 2.8.0 - UNRELEASED
     HADOOP-12731. Remove useless boxing/unboxing code.
     (Kousuke Saruta via aajisaka)
 
+    HADOOP-12718. Incorrect error message by fs -put local dir without
+    permission. (John Zhuge via Yongjun Zhang)
+
 Release 2.7.3 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 5 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java

@@ -33,6 +33,7 @@ import java.io.OutputStream;
 import java.io.FileDescriptor;
 import java.net.URI;
 import java.nio.ByteBuffer;
+import java.nio.file.AccessDeniedException;
 import java.nio.file.Files;
 import java.nio.file.NoSuchFileException;
 import java.nio.file.attribute.BasicFileAttributes;
@@ -450,6 +451,10 @@ public class RawLocalFileSystem extends FileSystem {
     if (localf.isDirectory()) {
       String[] names = localf.list();
       if (names == null) {
+        if (!localf.canRead()) {
+          throw new AccessDeniedException("cannot open directory " + f +
+              ": Permission denied");
+        }
         return null;
       }
       results = new FileStatus[names.length];