Author: cnauroth Date: Sat Nov 9 05:54:19 2013 New Revision: 1540257 URL: http://svn.apache.org/r1540257 Log: HDFS-5482. DistributedFileSystem#listPathBasedCacheDirectives must support relative paths. Contributed by Colin Patrick McCabe.
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1540257&r1=1540256&r2=1540257&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Sat Nov 9 05:54:19 2013 @@ -361,6 +361,9 @@ Trunk (Unreleased) HDFS-5394. Fix race conditions in DN caching and uncaching (cmccabe) + HDFS-5482. DistributedFileSystem#listPathBasedCacheDirectives must support + relative paths. (Colin Patrick McCabe via cnauroth) + Release 2.3.0 - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java?rev=1540257&r1=1540256&r2=1540257&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java Sat Nov 9 05:54:19 2013 @@ -1637,9 +1637,8 @@ public class DistributedFileSystem exten } if (filter.getPath() != null) { filter = new PathBasedCacheDirective.Builder(filter). - setPath(filter.getPath(). - makeQualified(getUri(), filter.getPath())). - build(); + setPath(new Path(getPathName(fixRelativePart(filter.getPath())))). + build(); } final RemoteIterator<PathBasedCacheDirective> iter = dfs.listPathBasedCacheDirectives(filter); @@ -1651,8 +1650,11 @@ public class DistributedFileSystem exten @Override public PathBasedCacheDirective next() throws IOException { + // Although the paths we get back from the NameNode should always be + // absolute, we call makeQualified to add the scheme and authority of + // this DistributedFilesystem. PathBasedCacheDirective desc = iter.next(); - Path p = desc.getPath().makeQualified(getUri(), desc.getPath()); + Path p = desc.getPath().makeQualified(getUri(), getWorkingDirectory()); return new PathBasedCacheDirective.Builder(desc).setPath(p).build(); } }; Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml?rev=1540257&r1=1540256&r2=1540257&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/resources/testCacheAdminConf.xml Sat Nov 9 05:54:19 2013 @@ -335,7 +335,7 @@ <cache-admin-command>-addDirective -path /bar -pool pool1</cache-admin-command> <cache-admin-command>-addDirective -path /foo -pool pool2</cache-admin-command> <cache-admin-command>-addDirective -path /bar -pool pool2</cache-admin-command> - <cache-admin-command>-removeDirectives -path /foo</cache-admin-command> + <cache-admin-command>-removeDirectives -path ../../foo</cache-admin-command> <cache-admin-command>-listDirectives</cache-admin-command> </test-commands> <cleanup-commands>