Author: bobby Date: Thu Aug 23 19:19:19 2012 New Revision: 1376655 URL: http://svn.apache.org/viewvc?rev=1376655&view=rev Log: svn merge -c 1376653 FIXES: HADOOP-8709. globStatus changed behavior from 0.20/1.x (Jason Lowe via bobby) Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileContext.java hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FSMainOperationsBaseTest.java hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextMainOperationsBaseTest.java Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1376655&r1=1376654&r2=1376655&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/CHANGES.txt Thu Aug 23 19:19:19 2012 @@ -784,6 +784,9 @@ Release 0.23.3 - UNRELEASED HADOOP-8225. DistCp fails when invoked by Oozie (daryn via bobby) + HADOOP-8709. globStatus changed behavior from 0.20/1.x (Jason Lowe via + bobby) + Release 0.23.2 - UNRELEASED NEW FEATURES Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileContext.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileContext.java?rev=1376655&r1=1376654&r2=1376655&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileContext.java (original) +++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileContext.java Thu Aug 23 19:19:19 2012 @@ -2014,7 +2014,11 @@ public final class FileContext { new GlobFilter(components[components.length - 1], filter); if (fp.hasPattern()) { // last component has a pattern // list parent directories and then glob the results - results = listStatus(parentPaths, fp); + try { + results = listStatus(parentPaths, fp); + } catch (FileNotFoundException e) { + results = null; + } hasGlob[0] = true; } else { // last component does not have a pattern // get all the path names @@ -2065,7 +2069,11 @@ public final class FileContext { } GlobFilter fp = new GlobFilter(filePattern[level]); if (fp.hasPattern()) { - parents = FileUtil.stat2Paths(listStatus(parents, fp)); + try { + parents = FileUtil.stat2Paths(listStatus(parents, fp)); + } catch (FileNotFoundException e) { + parents = null; + } hasGlob[0] = true; } else { for (int i = 0; i < parents.length; i++) { Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java?rev=1376655&r1=1376654&r2=1376655&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java (original) +++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java Thu Aug 23 19:19:19 2012 @@ -1619,7 +1619,11 @@ public abstract class FileSystem extends GlobFilter fp = new GlobFilter(components[components.length - 1], filter); if (fp.hasPattern()) { // last component has a pattern // list parent directories and then glob the results - results = listStatus(parentPaths, fp); + try { + results = listStatus(parentPaths, fp); + } catch (FileNotFoundException e) { + results = null; + } hasGlob[0] = true; } else { // last component does not have a pattern // remove the quoting of metachars in a non-regexp expansion @@ -1668,7 +1672,11 @@ public abstract class FileSystem extends } GlobFilter fp = new GlobFilter(filePattern[level]); if (fp.hasPattern()) { - parents = FileUtil.stat2Paths(listStatus(parents, fp)); + try { + parents = FileUtil.stat2Paths(listStatus(parents, fp)); + } catch (FileNotFoundException e) { + parents = null; + } hasGlob[0] = true; } else { // the component does not have a pattern // remove the quoting of metachars in a non-regexp expansion Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FSMainOperationsBaseTest.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FSMainOperationsBaseTest.java?rev=1376655&r1=1376654&r2=1376655&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FSMainOperationsBaseTest.java (original) +++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FSMainOperationsBaseTest.java Thu Aug 23 19:19:19 2012 @@ -364,15 +364,17 @@ public abstract class FSMainOperationsBa } @Test - public void testGlobStatusThrowsExceptionForNonExistentFile() throws Exception { - try { - // This should throw a FileNotFoundException - fSys.globStatus( - getTestRootPath(fSys, "test/hadoopfsdf/?")); - Assert.fail("Should throw FileNotFoundException"); - } catch (FileNotFoundException fnfe) { - // expected - } + public void testGlobStatusNonExistentFile() throws Exception { + FileStatus[] paths = fSys.globStatus( + getTestRootPath(fSys, "test/hadoopfsdf")); + Assert.assertNull(paths); + + paths = fSys.globStatus( + getTestRootPath(fSys, "test/hadoopfsdf/?")); + Assert.assertEquals(0, paths.length); + paths = fSys.globStatus( + getTestRootPath(fSys, "test/hadoopfsdf/xyz*/?")); + Assert.assertEquals(0, paths.length); } @Test Modified: hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextMainOperationsBaseTest.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextMainOperationsBaseTest.java?rev=1376655&r1=1376654&r2=1376655&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextMainOperationsBaseTest.java (original) +++ hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileContextMainOperationsBaseTest.java Thu Aug 23 19:19:19 2012 @@ -360,15 +360,17 @@ public abstract class FileContextMainOpe } @Test - public void testGlobStatusThrowsExceptionForNonExistentFile() throws Exception { - try { - // This should throw a FileNotFoundException - fc.util().globStatus( - getTestRootPath(fc, "test/hadoopfsdf/?")); - Assert.fail("Should throw FileNotFoundException"); - } catch (FileNotFoundException fnfe) { - // expected - } + public void testGlobStatusNonExistentFile() throws Exception { + FileStatus[] paths = fc.util().globStatus( + getTestRootPath(fc, "test/hadoopfsdf")); + Assert.assertNull(paths); + + paths = fc.util().globStatus( + getTestRootPath(fc, "test/hadoopfsdf/?")); + Assert.assertEquals(0, paths.length); + paths = fc.util().globStatus( + getTestRootPath(fc, "test/hadoopfsdf/xyz*/?")); + Assert.assertEquals(0, paths.length); } @Test