Author: daijy Date: Wed Sep 4 01:36:39 2013 New Revision: 1519897 URL: http://svn.apache.org/r1519897 Log: HIVE-4441: WebHCat does not honor user home directory (Daniel Dai)
Modified: hive/trunk/hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/tool/TempletonUtils.java Modified: hive/trunk/hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/tool/TempletonUtils.java URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/tool/TempletonUtils.java?rev=1519897&r1=1519896&r2=1519897&view=diff ============================================================================== --- hive/trunk/hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/tool/TempletonUtils.java (original) +++ hive/trunk/hcatalog/webhcat/svr/src/main/java/org/apache/hcatalog/templeton/tool/TempletonUtils.java Wed Sep 4 01:36:39 2013 @@ -35,6 +35,7 @@ import java.util.regex.Pattern; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.LocalFileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hdfs.DistributedFileSystem; import org.apache.hadoop.security.UserGroupInformation; @@ -220,7 +221,8 @@ public class TempletonUtils { // If path contains scheme, user should mean an absolute path, // However, path.isAbsolute tell us otherwise. // So we skip conversion for non-hdfs. - if (!(path.getFileSystem(conf) instanceof DistributedFileSystem)) { + if (!(path.getFileSystem(conf) instanceof DistributedFileSystem)&& + !(path.getFileSystem(conf) instanceof LocalFileSystem)) { return result; } if (!path.isAbsolute()) { @@ -236,7 +238,12 @@ public class TempletonUtils { return null; } - UserGroupInformation ugi = UgiFactory.getUgi(user); + UserGroupInformation ugi; + if (user!=null) { + ugi = UgiFactory.getUgi(user); + } else { + ugi = UserGroupInformation.getLoginUser(); + } final String finalFName = new String(fname); final FileSystem defaultFs =