You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by bo...@apache.org on 2012/10/23 17:47:27 UTC
svn commit: r1401325 - in
/hadoop/common/trunk/hadoop-common-project/hadoop-common: CHANGES.txt
src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
Author: bobby
Date: Tue Oct 23 15:47:26 2012
New Revision: 1401325
URL: http://svn.apache.org/viewvc?rev=1401325&view=rev
Log:
HADOOP-8962. RawLocalFileSystem.listStatus fails when a child filename contains a colon (jlowe via bobby)
Modified:
hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1401325&r1=1401324&r2=1401325&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt Tue Oct 23 15:47:26 2012
@@ -1097,6 +1097,9 @@ Release 0.23.5 - UNRELEASED
HADOOP-8811. Compile hadoop native library in FreeBSD (Radim Kolar via
bobby)
+ HADOOP-8962. RawLocalFileSystem.listStatus fails when a child filename
+ contains a colon (jlowe via bobby)
+
Release 0.23.4 - UNRELEASED
INCOMPATIBLE CHANGES
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java?rev=1401325&r1=1401324&r2=1401325&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java Tue Oct 23 15:47:26 2012
@@ -350,7 +350,7 @@ public class RawLocalFileSystem extends
new RawLocalFileStatus(localf, getDefaultBlockSize(f), this) };
}
- String[] names = localf.list();
+ File[] names = localf.listFiles();
if (names == null) {
return null;
}
@@ -358,7 +358,7 @@ public class RawLocalFileSystem extends
int j = 0;
for (int i = 0; i < names.length; i++) {
try {
- results[j] = getFileStatus(new Path(f, names[i]));
+ results[j] = getFileStatus(new Path(names[i].getAbsolutePath()));
j++;
} catch (FileNotFoundException e) {
// ignore the files not found since the dir list may have have changed
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java?rev=1401325&r1=1401324&r2=1401325&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocalFileSystem.java Tue Oct 23 15:47:26 2012
@@ -249,6 +249,7 @@ public class TestLocalFileSystem {
assertEquals(1, fileSchemeCount);
}
+ @Test
public void testHasFileDescriptor() throws IOException {
Configuration conf = new Configuration();
LocalFileSystem fs = FileSystem.getLocal(conf);
@@ -258,4 +259,17 @@ public class TestLocalFileSystem {
new RawLocalFileSystem().new LocalFSFileInputStream(path), 1024);
assertNotNull(bis.getFileDescriptor());
}
+
+ @Test
+ public void testListStatusWithColons() throws IOException {
+ Configuration conf = new Configuration();
+ LocalFileSystem fs = FileSystem.getLocal(conf);
+ File colonFile = new File(TEST_ROOT_DIR, "foo:bar");
+ colonFile.mkdirs();
+ colonFile.createNewFile();
+ FileStatus[] stats = fs.listStatus(new Path(TEST_ROOT_DIR));
+ assertEquals("Unexpected number of stats", 1, stats.length);
+ assertEquals("Bad path from stat", colonFile.getAbsolutePath(),
+ stats[0].getPath().toUri().getPath());
+ }
}