diff --git shims/src/common/java/org/apache/hadoop/fs/ProxyFileSystem.java shims/src/common/java/org/apache/hadoop/fs/ProxyFileSystem.java index 28a18f6..5d167e0 100644 --- shims/src/common/java/org/apache/hadoop/fs/ProxyFileSystem.java +++ shims/src/common/java/org/apache/hadoop/fs/ProxyFileSystem.java @@ -19,6 +19,7 @@ package org.apache.hadoop.fs; import java.io.IOException; +import java.io.FileNotFoundException; import java.net.URI; import java.net.URISyntaxException; @@ -198,6 +199,28 @@ public boolean deleteOnExit(Path f) throws IOException { } @Override + public RemoteIterator listLocatedStatus(final Path f) + throws FileNotFoundException, IOException { + return new RemoteIterator() { + private RemoteIterator stats = + ProxyFileSystem.super.listLocatedStatus( + ProxyFileSystem.this.swizzleParamPath(f)); + @Override + public boolean hasNext() throws IOException { + return stats.hasNext(); + } + + @Override + public LocatedFileStatus next() throws IOException { + LocatedFileStatus result = stats.next(); + return new LocatedFileStatus( + ProxyFileSystem.this.swizzleFileStatus(result, false), + result.getBlockLocations()); + } + }; + } + + @Override public Path getHomeDirectory() { return swizzleReturnPath(super.getHomeDirectory()); }