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

This commit is contained in:
Mingliang Liu 2016-11-30 13:01:02 -08:00
parent 4fca94fbda
commit 3fd844b99f
1 changed files with 6 additions and 1 deletions

View File

@ -587,8 +587,13 @@ public class NativeS3FileSystem extends FileSystem {
for (String commonPrefix : listing.getCommonPrefixes()) { for (String commonPrefix : listing.getCommonPrefixes()) {
Path subpath = keyToPath(commonPrefix); Path subpath = keyToPath(commonPrefix);
String relativePath = pathUri.relativize(subpath.toUri()).getPath(); String relativePath = pathUri.relativize(subpath.toUri()).getPath();
// 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))); status.add(newDirectory(new Path(absolutePath, relativePath)));
} }
}
priorLastKey = listing.getPriorLastKey(); priorLastKey = listing.getPriorLastKey();
} while (priorLastKey != null); } while (priorLastKey != null);