This is an automated email from the ASF dual-hosted git repository. virajith pushed a commit to branch branch-2.10 in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-2.10 by this push: new ae2bc55 HADOOP-8299. ViewFileSystem link slash mount point crashes with IndexOutOfBoundsException. Contributed by Manoj Govindassamy. ae2bc55 is described below commit ae2bc55bfcbb2a824343029c4c22ad3999532fcb Author: Andrew Wang <w...@apache.org> AuthorDate: Wed Oct 26 14:25:03 2016 -0700 HADOOP-8299. ViewFileSystem link slash mount point crashes with IndexOutOfBoundsException. Contributed by Manoj Govindassamy. (cherry picked from commit 22ff0eff4d58ac0beda7a5a3ae0e5d108da14f7f) --- .../org/apache/hadoop/fs/viewfs/InodeTree.java | 6 +++++ .../hadoop/fs/viewfs/ViewFileSystemBaseTest.java | 31 ++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/InodeTree.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/InodeTree.java index 8c42cdf..0a949fe 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/InodeTree.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/viewfs/InodeTree.java @@ -318,6 +318,12 @@ abstract class InodeTree<T> { String src = key.substring(mtPrefix.length()); if (src.startsWith(linkPrefix)) { src = src.substring(linkPrefix.length()); + if (src.equals(SlashPath.toString())) { + throw new UnsupportedFileSystemException("Unexpected mount table " + + "link entry '" + key + "'. " + + Constants.CONFIG_VIEWFS_LINK_MERGE_SLASH + " is not " + + "supported yet."); + } } else if (src.startsWith(linkMergePrefix)) { // A merge link isMergeLink = true; src = src.substring(linkMergePrefix.length()); diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java index eb48be1..025fe67 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/viewfs/ViewFileSystemBaseTest.java @@ -43,6 +43,9 @@ import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FsConstants; import org.apache.hadoop.fs.LocatedFileStatus; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.RemoteIterator; +import org.apache.hadoop.fs.UnsupportedFileSystemException; +import org.apache.hadoop.fs.permission.AclEntry; import org.apache.hadoop.fs.permission.AclStatus; import org.apache.hadoop.fs.permission.AclUtil; import org.apache.hadoop.fs.RemoteIterator; @@ -61,6 +64,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import static org.hamcrest.CoreMatchers.containsString; +import static org.junit.Assert.*; /** * <p> @@ -1056,4 +1061,30 @@ abstract public class ViewFileSystemBaseTest { viewFs.close(); assertFalse(fsTarget.exists(realTestPath)); } + + public void testConfLinkSlash() throws Exception { + String clusterName = "ClusterX"; + URI viewFsUri = new URI(FsConstants.VIEWFS_SCHEME, clusterName, + "/", null, null); + + Configuration newConf = new Configuration(); + ConfigUtil.addLink(newConf, clusterName, "/", + new Path(targetTestRoot, "/").toUri()); + + String mtPrefix = Constants.CONFIG_VIEWFS_PREFIX + "." + clusterName + "."; + try { + FileSystem.get(viewFsUri, newConf); + fail("ViewFileSystem should error out on mount table entry: " + + mtPrefix + Constants.CONFIG_VIEWFS_LINK + "." + "/"); + } catch (Exception e) { + if (e instanceof UnsupportedFileSystemException) { + String msg = Constants.CONFIG_VIEWFS_LINK_MERGE_SLASH + + " is not supported yet."; + assertThat(e.getMessage(), containsString(msg)); + } else { + fail("Unexpected exception: " + e.getMessage()); + } + } + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org