This is an automated email from the ASF dual-hosted git repository.

vitalii pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git

commit bd374345cf11642857b702ceba660580f3cf4af5
Author: Bohdan Kazydub <[email protected]>
AuthorDate: Thu Mar 21 10:52:14 2019 +0200

    DRILL-7079: Drill can't query views from the S3 storage when plain 
authentication is enabled
    
    closes #1712
---
 .../main/java/org/apache/drill/exec/dotdrill/DotDrillFile.java    | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/DotDrillFile.java 
b/exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/DotDrillFile.java
index 04b0d74..761d4ac 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/DotDrillFile.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/dotdrill/DotDrillFile.java
@@ -19,6 +19,7 @@ package org.apache.drill.exec.dotdrill;
 
 import org.apache.drill.common.config.LogicalPlanPersistence;
 import org.apache.drill.exec.store.dfs.DrillFileSystem;
+import org.apache.drill.exec.util.ImpersonationUtil;
 import org.apache.hadoop.fs.FileStatus;
 
 import org.apache.drill.shaded.guava.com.google.common.base.Preconditions;
@@ -55,6 +56,13 @@ public class DotDrillFile {
    * @return Return owner of the file in underlying file system.
    */
   public String getOwner() {
+    if (type == DotDrillType.VIEW && status.getOwner().isEmpty()) {
+      // Drill view S3AFileStatus is not populated with owner (it has default 
value of "").
+      // This empty String causes IllegalArgumentException to be thrown (if 
impersonation is enabled) in
+      // SchemaTreeProvider#createRootSchema(String, 
SchemaConfigInfoProvider). To work-around the issue
+      // we can return current user as if they were the owner of the file 
(since they have access to it).
+      return ImpersonationUtil.getProcessUserName();
+    }
     return status.getOwner();
   }
 

Reply via email to