LENS-1228 : Fix TestQueryConstraints test failure

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

Branch: refs/heads/current-release-line
Commit: c5dd7de4b69f7454539cb7147d9d1bfade7e34d5
Parents: 1a96948
Author: Amareshwari Sriramadasu <[email protected]>
Authored: Tue Jul 26 09:43:32 2016 +0530
Committer: Amareshwari Sriramadasu <[email protected]>
Committed: Tue Jul 26 09:43:32 2016 +0530

----------------------------------------------------------------------
 .../lens/server/api/query/QueryContext.java     |  3 +++
 .../server/query/QueryExecutionServiceImpl.java | 22 ++++++++---------
 .../DefaultEstimatedQueryCollection.java        |  5 ++++
 .../apache/lens/server/TestLensApplication.java |  5 ++++
 .../lens/server/query/TestQueryConstraints.java | 26 +++++++++-----------
 .../TestQueryIndependenceFromSessionClose.java  | 20 ++++++++++++---
 6 files changed, 50 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
----------------------------------------------------------------------
diff --git 
a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
 
b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
index 7f323dc..2641b60 100644
--- 
a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
+++ 
b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
@@ -529,4 +529,7 @@ public class QueryContext extends AbstractQueryContext {
     this.driverResult = result;
   }
 
+  public String toString() {
+    return queryHandle + ":" + this.status;
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index cf0c168..a582994 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -902,18 +902,16 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
   private void updateFinishedQuery(QueryContext ctx, QueryStatus before) {
     // before would be null in case of server restart
     if (before != null) {
-      if (before.queued()) {
-        /* Seems like query is cancelled, remove it from both queuedQueries 
and waitingQueries because we don't know
-        * where it is right now. It might happen that when we remove it from 
queued, it was in waiting OR
-        * when we removed it from waiting, it was in queued. We might just 
miss removing it from everywhere due to this
-        * hide and seek. Then QuerySubmitter thread will come to rescue, as it 
always checks that a query should be in
-        * queued state before processing it after deque. If it is in cancelled 
state, then it will skip it. */
-        queuedQueries.remove(ctx);
-        waitingQueries.remove(ctx);
-      } else {
-        if (removeFromLaunchedQueries(ctx)) {
-          processWaitingQueriesAsync(ctx);
-        }
+      /* Seems like query is cancelled, remove it from both queuedQueries and 
waitingQueries because we don't know
+       * where it is right now. It might happen that when we remove it from 
queued, it was in waiting OR
+       * when we removed it from waiting, it was in queued. We might just miss 
removing it from everywhere due to this
+       * hide and seek. Then QuerySubmitter thread will come to rescue, as it 
always checks that a query should be in
+       * queued state before processing it after deque. If it is in cancelled 
state, then it will skip it. */
+      queuedQueries.remove(ctx);
+      waitingQueries.remove(ctx);
+      // Remove it from launched queries as well - the query got cancelled or 
failed to launch or failed to execute
+      if (removeFromLaunchedQueries(ctx)) {
+        processWaitingQueriesAsync(ctx);
       }
     }
     // Remove from active queries

http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
 
b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
index 4e5aa68..9a37afd 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/collect/DefaultEstimatedQueryCollection.java
@@ -173,4 +173,9 @@ public class DefaultEstimatedQueryCollection implements 
EstimatedQueryCollection
     log.debug("Total Query Cost:{}", totalQueryCost);
     return totalQueryCost;
   }
+
+  @Override
+  public synchronized String toString() {
+    return getClass().getSimpleName() + "(Queries=" + this.queries + ")";
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java 
b/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java
index 6636346..840e358 100644
--- a/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java
+++ b/lens-server/src/test/java/org/apache/lens/server/TestLensApplication.java
@@ -29,6 +29,7 @@ import org.apache.lens.server.api.metrics.MetricsService;
 import org.apache.lens.server.metrics.MetricsServiceImpl;
 
 import org.testng.Assert;
+import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
 
@@ -50,6 +51,10 @@ public class TestLensApplication extends 
LensAllApplicationJerseyTest {
     super.setUp();
   }
 
+  @AfterTest
+  public void tearDown() throws Exception {
+    super.tearDown();
+  }
   /**
    * Test ws resources loaded.
    *

http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
index 8276ace..8be1f89 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryConstraints.java
@@ -94,6 +94,12 @@ public class TestQueryConstraints extends LensJerseyTest {
   @BeforeTest
   public void setUp() throws Exception {
     super.setUp();
+
+  }
+
+  @BeforeClass
+  public void setupTest() throws Exception {
+    restartLensServer();
     queryService = LensServices.get().getService(QueryExecutionService.NAME);
     metricsSvc = LensServices.get().getService(MetricsService.NAME);
     Map<String, String> sessionConf = new HashMap<>();
@@ -104,13 +110,10 @@ public class TestQueryConstraints extends LensJerseyTest {
     loadData(TEST_TABLE, TestResourceFile.TEST_DATA2_FILE.getValue());
   }
 
-  @BeforeClass
-  public void setupTest() {
-    restartLensServer();
-  }
-
   @AfterClass
-  public void afterTest() {
+  public void afterTest() throws Exception {
+    dropTable(TEST_TABLE);
+    queryService.closeSession(lensSessionId);
     restartLensServer();
   }
 
@@ -127,13 +130,6 @@ public class TestQueryConstraints extends LensJerseyTest {
      */
   @AfterTest
   public void tearDown() throws Exception {
-    dropTable(TEST_TABLE);
-    queryService.closeSession(lensSessionId);
-    for (LensDriver driver : queryService.getDrivers()) {
-      if (driver instanceof HiveDriver) {
-        assertFalse(((HiveDriver) driver).hasLensSession(lensSessionId));
-      }
-    }
     super.tearDown();
   }
 
@@ -215,7 +211,7 @@ public class TestQueryConstraints extends LensJerseyTest {
     }
     for (QueryHandle handle : handles) {
       RestAPITestUtil.waitForQueryToFinish(target(), lensSessionId, handle, 
mt);
-      queryService.closeResultSet(lensSessionId, handle);
+      queryService.fetchResultSet(lensSessionId, handle, 0, 100);
       assertValidity();
     }
   }
@@ -242,7 +238,7 @@ public class TestQueryConstraints extends LensJerseyTest {
         Optional.of(conf), mt);
   }
 
-  @AfterClass
+  @AfterMethod
   private void waitForPurge() throws InterruptedException {
     waitForPurge(0, queryService.finishedQueries);
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/c5dd7de4/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
index 24cbcaa..d723596 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryIndependenceFromSessionClose.java
@@ -63,14 +63,27 @@ public class TestQueryIndependenceFromSessionClose extends 
LensJerseyTest {
   LensSessionHandle lensSessionId;
   private LensConf conf;
 
+  @BeforeTest
+  public void setUp() throws Exception {
+    super.setUp();
+  }
+
+  /*
+   * (non-Javadoc)
+   *
+   * @see org.glassfish.jersey.test.JerseyTest#tearDown()
+   */
+  @AfterTest
+  public void tearDown() throws Exception {
+    super.tearDown();
+  }
   /*
    * (non-Javadoc)
    *
    * @see org.glassfish.jersey.test.JerseyTest#setUp()
    */
   @BeforeClass
-  public void setUp() throws Exception {
-    super.setUp();
+  public void setUpClass() throws Exception {
     queryService = LensServices.get().getService(QueryExecutionService.NAME);
     lensSessionId = getSession();
     createTable(TEST_TABLE);
@@ -104,7 +117,7 @@ public class TestQueryIndependenceFromSessionClose extends 
LensJerseyTest {
      * @see org.glassfish.jersey.test.JerseyTest#tearDown()
      */
   @AfterClass
-  public void tearDown() throws Exception {
+  public void tearDownClass() throws Exception {
     dropTable(TEST_TABLE);
     queryService.closeSession(lensSessionId);
     for (LensDriver driver : queryService.getDrivers()) {
@@ -112,7 +125,6 @@ public class TestQueryIndependenceFromSessionClose extends 
LensJerseyTest {
         assertFalse(((HiveDriver) driver).hasLensSession(lensSessionId));
       }
     }
-    super.tearDown();
   }
 
   @Override

Reply via email to