HADOOP-14211. FilterFs and ChRootedFs are too aggressive about enforcing 'authorityNeeded'. Contributed by Erik Krogen.
(cherry picked from commit0e556a5ba6
) (cherry picked from commit96fe940e59
)
This commit is contained in:
parent
a92f654aa2
commit
5130128a31
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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()) {};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue