You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2015/03/31 14:50:17 UTC

incubator-lens git commit: LENS-471 : Fix NPE while calculating priority (amareshwari)

Repository: incubator-lens
Updated Branches:
  refs/heads/master 1820fe088 -> 511418a6b


LENS-471 : Fix NPE while calculating priority (amareshwari)


Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/511418a6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/511418a6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/511418a6

Branch: refs/heads/master
Commit: 511418a6be7d2f4e27c28531908d60a38efc19bb
Parents: 1820fe0
Author: Amareshwari Sriramadasu <am...@apache.org>
Authored: Tue Mar 31 18:20:02 2015 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Tue Mar 31 18:20:02 2015 +0530

----------------------------------------------------------------------
 .../DurationBasedQueryPriorityDecider.java         |  5 ++++-
 .../apache/lens/driver/hive/TestHiveDriver.java    | 17 +++++++++++------
 .../api/query/DriverSelectorQueryContext.java      |  2 +-
 3 files changed, 16 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/511418a6/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/priority/DurationBasedQueryPriorityDecider.java
----------------------------------------------------------------------
diff --git a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/priority/DurationBasedQueryPriorityDecider.java b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/priority/DurationBasedQueryPriorityDecider.java
index c0156e5..a26ed0c 100644
--- a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/priority/DurationBasedQueryPriorityDecider.java
+++ b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/priority/DurationBasedQueryPriorityDecider.java
@@ -109,7 +109,10 @@ public class DurationBasedQueryPriorityDecider implements QueryPriorityDecider {
   private float getTableWeights(Set<String> tables, AbstractQueryContext queryContext) {
     float weight = 0;
     for (String tblName : tables) {
-      weight += queryContext.getDriverContext().getDriverRewriterPlan(driver).getTableWeight(tblName);
+      Double tblWeight = queryContext.getDriverContext().getDriverRewriterPlan(driver).getTableWeight(tblName);
+      if (tblWeight != null) {
+        weight += tblWeight;
+      }
     }
     return weight == 0 ? 1 : weight;
   }

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/511418a6/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
----------------------------------------------------------------------
diff --git a/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java b/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
index f02490b..36594e9 100644
--- a/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
+++ b/lens-driver-hive/src/test/java/org/apache/lens/driver/hive/TestHiveDriver.java
@@ -809,6 +809,7 @@ public class TestHiveDriver {
     BufferedReader br = new BufferedReader(new InputStreamReader(
       TestHiveDriver.class.getResourceAsStream("/priority_tests.data")));
     String line;
+    int i = 0;
     while ((line = br.readLine()) != null) {
       String[] kv = line.split("\\s*:\\s*");
 
@@ -834,14 +835,18 @@ public class TestHiveDriver {
             put("table1", partitions);
           }
         });
-      ctx.getDriverContext().getDriverRewriterPlan(driver).getTableWeights().putAll(
-        new HashMap<String, Double>() {
-          {
-            put("table1", 1.0);
-          }
-        });
+      if (i < 1) {
+        // table weights only for first calculation
+        ctx.getDriverContext().getDriverRewriterPlan(driver).getTableWeights().putAll(
+          new HashMap<String, Double>() {
+            {
+              put("table1", 1.0);
+            }
+          });
+      }
       Assert.assertEquals(expected, driver.queryPriorityDecider.decidePriority(ctx));
       Assert.assertEquals(Priority.NORMAL, alwaysNormalPriorityDecider.decidePriority(ctx));
+      i++;
     }
     // test priority without fact partitions
     AbstractQueryContext ctx = createContext("test priority query", conf);

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/511418a6/lens-server-api/src/main/java/org/apache/lens/server/api/query/DriverSelectorQueryContext.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/DriverSelectorQueryContext.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/DriverSelectorQueryContext.java
index 2fd592a..44eba2b 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/DriverSelectorQueryContext.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/DriverSelectorQueryContext.java
@@ -346,13 +346,13 @@ public class DriverSelectorQueryContext {
   void clearTransientStateAfterLaunch() {
     for (DriverQueryContext driverCtx : driverQueryContextMap.values()) {
       driverCtx.driverQueryPlan = null;
-      driverCtx.rewriterPlan = null;
     }
   }
 
   void clearTransientStateAfterCompleted() {
     for (DriverQueryContext driverCtx : driverQueryContextMap.values()) {
       driverCtx.driverSpecificConf = null;
+      driverCtx.rewriterPlan = null;
     }
   }
 }