AMBARI-20199. HiveView2.0 query fails if we have an additional newline after 
the last query statement ending with ';'. (dipayanb)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/4fb86de5
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/4fb86de5
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/4fb86de5

Branch: refs/heads/branch-feature-AMBARI-12556
Commit: 4fb86de568347276c99a5cab739b4cab60f49b24
Parents: 0712ef6
Author: Dipayan Bhowmick <[email protected]>
Authored: Wed Mar 1 12:09:42 2017 +0530
Committer: Dipayan Bhowmick <[email protected]>
Committed: Wed Mar 1 12:10:14 2017 +0530

----------------------------------------------------------------------
 .../jobs/viewJobs/JobControllerImpl.java        | 28 +++++++++++++++----
 .../jobs/viewJobs/JobControllerImpl.java        | 29 ++++++++++++++++----
 2 files changed, 45 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/4fb86de5/contrib/views/hive-next/src/main/java/org/apache/ambari/view/hive2/resources/jobs/viewJobs/JobControllerImpl.java
----------------------------------------------------------------------
diff --git 
a/contrib/views/hive-next/src/main/java/org/apache/ambari/view/hive2/resources/jobs/viewJobs/JobControllerImpl.java
 
b/contrib/views/hive-next/src/main/java/org/apache/ambari/view/hive2/resources/jobs/viewJobs/JobControllerImpl.java
index 66b8334..f1afc0f 100644
--- 
a/contrib/views/hive-next/src/main/java/org/apache/ambari/view/hive2/resources/jobs/viewJobs/JobControllerImpl.java
+++ 
b/contrib/views/hive-next/src/main/java/org/apache/ambari/view/hive2/resources/jobs/viewJobs/JobControllerImpl.java
@@ -39,7 +39,7 @@ import 
org.apache.ambari.view.hive2.utils.ServiceFormattedException;
 import org.apache.ambari.view.utils.hdfs.HdfsApi;
 import org.apache.ambari.view.utils.hdfs.HdfsApiException;
 import org.apache.ambari.view.utils.hdfs.HdfsUtil;
-import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,6 +47,13 @@ import java.io.IOException;
 import java.lang.reflect.Proxy;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.List;
+import javax.annotation.Nullable;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Lists;
 
 public class JobControllerImpl implements JobController, 
ModifyNotificationDelegate {
     private final static Logger LOG =
@@ -113,11 +120,20 @@ public class JobControllerImpl implements JobController, 
ModifyNotificationDeleg
     }
 
     private String[] getStatements(String jobDatabase, String query) {
-      String[] queries = query.split(";");
-
-
-      String[] strings = {"use " + jobDatabase};
-      return ArrayUtils.addAll(strings, queries);
+        List<String> queries = Lists.asList("use " + jobDatabase, 
query.split(";"));
+        List<String> cleansedQueries = 
FluentIterable.from(queries).transform(new Function<String, String>() {
+            @Nullable
+            @Override
+            public String apply(@Nullable String s) {
+                return s.trim();
+            }
+        }).filter(new Predicate<String>() {
+            @Override
+            public boolean apply(@Nullable String s) {
+                return !StringUtils.isEmpty(s);
+            }
+        }).toList();
+        return cleansedQueries.toArray(new String[0]);
     }
 
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/4fb86de5/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/jobs/viewJobs/JobControllerImpl.java
----------------------------------------------------------------------
diff --git 
a/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/jobs/viewJobs/JobControllerImpl.java
 
b/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/jobs/viewJobs/JobControllerImpl.java
index 1511e5b..2886e65 100644
--- 
a/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/jobs/viewJobs/JobControllerImpl.java
+++ 
b/contrib/views/hive20/src/main/java/org/apache/ambari/view/hive20/resources/jobs/viewJobs/JobControllerImpl.java
@@ -39,7 +39,7 @@ import 
org.apache.ambari.view.hive20.utils.ServiceFormattedException;
 import org.apache.ambari.view.utils.hdfs.HdfsApi;
 import org.apache.ambari.view.utils.hdfs.HdfsApiException;
 import org.apache.ambari.view.utils.hdfs.HdfsUtil;
-import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,6 +47,14 @@ import java.io.IOException;
 import java.lang.reflect.Proxy;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Nullable;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Lists;
 
 public class JobControllerImpl implements JobController, 
ModifyNotificationDelegate {
     private final static Logger LOG =
@@ -113,11 +121,20 @@ public class JobControllerImpl implements JobController, 
ModifyNotificationDeleg
     }
 
     private String[] getStatements(String jobDatabase, String query) {
-      String[] queries = query.split(";");
-
-
-      String[] strings = {"use " + jobDatabase};
-      return ArrayUtils.addAll(strings, queries);
+      List<String> queries = Lists.asList("use " + jobDatabase, 
query.split(";"));
+      List<String> cleansedQueries = 
FluentIterable.from(queries).transform(new Function<String, String>() {
+          @Nullable
+          @Override
+          public String apply(@Nullable String s) {
+              return s.trim();
+          }
+      }).filter(new Predicate<String>() {
+          @Override
+          public boolean apply(@Nullable String s) {
+              return !StringUtils.isEmpty(s);
+          }
+      }).toList();
+      return cleansedQueries.toArray(new String[0]);
     }
 
 

Reply via email to