HADOOP-14211. FilterFs and ChRootedFs are too aggressive about enforcing 
'authorityNeeded'. Contributed by Erik Krogen.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/0e556a5b
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/0e556a5b
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/0e556a5b

Branch: refs/heads/HDFS-9806
Commit: 0e556a5ba645570d381beca60114a1239b27d49f
Parents: d4f73e7
Author: Andrew Wang <w...@apache.org>
Authored: Fri Mar 24 11:12:02 2017 -0700
Committer: Andrew Wang <w...@apache.org>
Committed: Fri Mar 24 11:12:02 2017 -0700

----------------------------------------------------------------------
 .../src/main/java/org/apache/hadoop/fs/FilterFs.java    |  3 +--
 .../java/org/apache/hadoop/fs/viewfs/ChRootedFs.java    |  3 +--
 .../test/java/org/apache/hadoop/fs/TestFilterFs.java    | 12 ++++++++++++
 3 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/0e556a5b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FilterFs.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FilterFs.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FilterFs.java
index 6b1093e..5c16a4e 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FilterFs.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FilterFs.java
@@ -57,8 +57,7 @@ public abstract class FilterFs extends AbstractFileSystem {
   }
   
   protected FilterFs(AbstractFileSystem fs) throws URISyntaxException {
-    super(fs.getUri(), fs.getUri().getScheme(),
-        fs.getUri().getAuthority() != null, fs.getUriDefaultPort());
+    super(fs.getUri(), fs.getUri().getScheme(), false, fs.getUriDefaultPort());
     myFs = fs;
   }
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/0e556a5b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ChRootedFs.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ChRootedFs.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ChRootedFs.java
index d77ad8b..ad1f5b5 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ChRootedFs.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/ChRootedFs.java
@@ -101,8 +101,7 @@ class ChRootedFs extends AbstractFileSystem {
 
   public ChRootedFs(final AbstractFileSystem fs, final Path theRoot)
     throws URISyntaxException {
-    super(fs.getUri(), fs.getUri().getScheme(),
-        fs.getUri().getAuthority() != null, fs.getUriDefaultPort());
+    super(fs.getUri(), fs.getUri().getScheme(), false, fs.getUriDefaultPort());
     myFs = fs;
     myFs.checkPath(theRoot);
     chRootPathPart = new Path(myFs.getUriPath(theRoot));

http://git-wip-us.apache.org/repos/asf/hadoop/blob/0e556a5b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFilterFs.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFilterFs.java
 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFilterFs.java
index 27d093c..a2f0905 100644
--- 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFilterFs.java
+++ 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFilterFs.java
@@ -25,6 +25,8 @@ import java.util.Iterator;
 
 import junit.framework.TestCase;
 import org.apache.commons.logging.Log;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.viewfs.ConfigUtil;
 
 public class TestFilterFs extends TestCase {
 
@@ -65,4 +67,14 @@ public class TestFilterFs extends TestCase {
     }
   }
   
+  // Test that FilterFs will accept an AbstractFileSystem to be filtered which
+  // has an optional authority, such as ViewFs
+  public void testFilteringWithNonrequiredAuthority() throws Exception {
+    Configuration conf = new Configuration();
+    ConfigUtil.addLink(conf, "custom", "/mnt", URI.create("file:///"));
+    FileContext fc =
+        FileContext.getFileContext(URI.create("viewfs://custom/"), conf);
+    new FilterFs(fc.getDefaultFileSystem()) {};
+  }
+
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to