Author: szetszwo
Date: Fri Mar 27 19:51:18 2009
New Revision: 759321
URL: http://svn.apache.org/viewvc?rev=759321&view=rev
Log:
HADOOP-5588. Remove an unnecessary call to listStatus(..) in
FileSystem.globStatusInternal(..). (Hairong Kuang via szetszwo)
Modified:
hadoop/core/trunk/CHANGES.txt
hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java
Modified: hadoop/core/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=759321&r1=759320&r2=759321&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Fri Mar 27 19:51:18 2009
@@ -1136,6 +1136,9 @@
HADOOP-5571. Remove widening primitive conversion in TupleWritable mask
manipulation. (Jingkei Ly via cdouglas)
+ HADOOP-5588. Remove an unnecessary call to listStatus(..) in
+ FileSystem.globStatusInternal(..). (Hairong Kuang via szetszwo)
+
Release 0.19.2 - Unreleased
BUG FIXES
Modified: hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java
URL:
http://svn.apache.org/viewvc/hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java?rev=759321&r1=759320&r2=759321&view=diff
==============================================================================
--- hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java (original)
+++ hadoop/core/trunk/src/core/org/apache/hadoop/fs/FileSystem.java Fri Mar 27
19:51:18 2009
@@ -919,9 +919,23 @@
} else {
// Now work on the last component of the path
GlobFilter fp = new GlobFilter(components[components.length - 1],
filter);
- results = listStatus(parentPaths, fp);
if (fp.hasPattern()) { // last component has a pattern
+ // list parent directories and then glob the results
+ results = listStatus(parentPaths, fp);
hasGlob[0] = true;
+ } else { // last component does not have a pattern
+ // get all the path names
+ ArrayList<Path> filteredPaths = new
ArrayList<Path>(parentPaths.length);
+ for (int i = 0; i < parentPaths.length; i++) {
+ parentPaths[i] = new Path(parentPaths[i],
+ components[components.length - 1]);
+ if (fp.accept(parentPaths[i])) {
+ filteredPaths.add(parentPaths[i]);
+ }
+ }
+ // get all their statuses
+ results = getFileStatus(
+ filteredPaths.toArray(new Path[filteredPaths.size()]));
}
}