HADOOP-13830. Intermittent failure of ITestS3NContractRootDir#testRecursiveRootListing: "Can not create a Path from an empty string". Contributed by Steve Loughran

(cherry picked from commit 3fd844b99f)
This commit is contained in:
Mingliang Liu 2016-11-30 13:01:02 -08:00
parent 3013b028ba
commit 39b74b6f9e
1 changed files with 6 additions and 1 deletions

View File

@ -574,7 +574,12 @@ public class NativeS3FileSystem extends FileSystem {
for (String commonPrefix : listing.getCommonPrefixes()) {
Path subpath = keyToPath(commonPrefix);
String relativePath = pathUri.relativize(subpath.toUri()).getPath();
status.add(newDirectory(new Path(absolutePath, relativePath)));
// sometimes the common prefix includes the base dir (HADOOP-13830).
// avoid that problem by detecting it and keeping it out
// of the list
if (!relativePath.isEmpty()) {
status.add(newDirectory(new Path(absolutePath, relativePath)));
}
}
priorLastKey = listing.getPriorLastKey();
} while (priorLastKey != null);