You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by pr...@apache.org on 2017/02/28 12:48:22 UTC

[4/8] lens git commit: LENS-1389: Back Merge with master and fix lens-cube tests

http://git-wip-us.apache.org/repos/asf/lens/blob/2aaf6e0a/lens-regression/src/test/java/org/apache/lens/regression/client/ITKillQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITKillQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITKillQueryTests.java
new file mode 100644
index 0000000..ecc0c6b
--- /dev/null
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITKillQueryTests.java
@@ -0,0 +1,361 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.lens.regression.client;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+
+import javax.ws.rs.client.WebTarget;
+
+import javax.xml.bind.JAXBException;
+
+import org.apache.lens.api.query.*;
+import org.apache.lens.regression.core.constants.QueryInventory;
+import org.apache.lens.regression.core.helpers.*;
+import org.apache.lens.regression.core.testHelper.BaseTestClass;
+import org.apache.lens.server.api.error.LensException;
+
+import org.apache.log4j.Logger;
+
+import org.testng.Assert;
+import org.testng.annotations.*;
+
+
+public class ITKillQueryTests extends BaseTestClass {
+
+  WebTarget servLens;
+  private String sessionHandleString;
+
+  private final String hdfsJarPath = lens.getServerHdfsUrl() + "/tmp";
+  private final String localJarPath = new File("").getAbsolutePath() + "/lens-regression/target/testjars/";
+  private final String hiveUdfJar = "hiveudftest.jar";
+  private final String serverResourcePath = "/tmp/regression/resources";
+  String sleepQuery = QueryInventory.getSleepQuery("5");
+
+  private static Logger logger = Logger.getLogger(ITKillQueryTests.class);
+
+  @BeforeClass(alwaysRun = true)
+  public void initialize() throws IOException, JAXBException, LensException, IllegalAccessException,
+      InstantiationException {
+    servLens = ServiceManagerHelper.init();
+    logger.info("Creating a new Session");
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
+
+    //TODO : Enable when udf registration per driver is fixed
+/*  HadoopUtil.uploadJars(localJarPath + "/" + hiveUdfJar, hdfsJarPath);
+    logger.info("Adding jar for making query to run for longer period of time");
+    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar);
+    QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_FUNCTION).getData();*/
+  }
+
+  @BeforeMethod(alwaysRun = true)
+  public void setUp(Method method) throws Exception {
+    logger.info("Test Name: " + method.getName());
+  }
+
+
+  @AfterClass(alwaysRun = true)
+  public void closeSession() throws Exception {
+    logger.info("Closing Session");
+    sHelper.closeSession();
+  }
+
+
+  @Test(enabled = true)
+  public void killQueryByHandle() throws Exception {
+
+    QueryHandle qH = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    logger.info("QUERY HANDLE : " + qH);
+
+    QueryStatus queryStatus = qHelper.waitForQueryToRun(qH);
+    Assert.assertEquals(queryStatus.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQueryByQueryHandle(qH);
+
+    queryStatus = qHelper.getQueryStatus(qH);
+    Assert.assertEquals(queryStatus.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+  }
+
+
+  @Test(enabled = true)
+  public void killQueryByUser() throws Exception {
+
+    String diffUser = "diff";
+    String diffPass = "diff";
+
+    String newSessionHandleSring = sHelper.openSession(diffUser, diffPass, lens.getCurrentDB());
+
+    logger.info("Adding jar for making query to run for longer period of time");
+    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar, newSessionHandleSring);
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    logger.info("1st QUERY HANDLE : " + queryHandle1);
+
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    logger.info("2nd QUERY HANDLE : " + queryHandle2);
+
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, null,
+        newSessionHandleSring).getData();
+    logger.info("3rd QUERY HANDLE : " + queryHandle3);
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3, newSessionHandleSring);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    Thread.sleep(1000);
+
+    qHelper.killQuery(null, null, lens.getUserName());
+    Thread.sleep(2000);
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(null, null, diffUser);
+
+    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+
+  }
+
+  @Test(enabled = true)
+  public void killQueryOfAllUser() throws Exception {
+
+    String diffUser = "diff";
+    String diffPass = "diff";
+    String newSessionHandleSring = sHelper.openSession(diffUser, diffPass, lens.getCurrentDB());
+    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar, newSessionHandleSring);
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, null,
+        newSessionHandleSring).getData();
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3, newSessionHandleSring);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(null, null, "all");
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+  }
+
+
+  @Test(enabled = true)
+  public void killAllQueryOfUser() throws Exception {
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery();
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+  }
+
+
+  @Test(enabled = true)
+  public void killQueryByState() throws Exception {
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    //kill Running queries
+    qHelper.killQuery(null, "RUNNING");
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+
+    //kill Canceled query
+    qHelper.killQuery(null, "CANCELED");
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
+
+    //kill successful query
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle3);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+    qHelper.killQuery(null, "SUCCESSFUL");
+    QueryStatus queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.SUCCESSFUL);
+  }
+
+  //TODO: enable when the bug is fixed.
+
+   /* Currently doing kill query by queryName "query" will kill all the query with queryName as "*query*"
+    * Raised a JIRA for same
+    * When its Fixed Revisit this function */
+
+  @Test(enabled = false)
+  public void killQueryByQueryName() throws Exception {
+
+    String queryName1 = "queryNameFirst";
+    String queryName2 = "queryNameSecond";
+    String queryName3 = "Name";
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName1).getData();
+    logger.info("1st QUERY HANDLE : " + queryHandle1);
+
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName2).getData();
+    logger.info("2nd QUERY HANDLE : " + queryHandle2);
+
+    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName3).getData();
+    logger.info("3rd QUERY HANDLE : " + queryHandle3);
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(queryName3);
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Cancelled");
+
+    qHelper.killQuery(queryName1);
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(queryName2);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+  }
+
+  @Test(enabled = true)
+  public void killQueryByTimeRange() throws Exception {
+
+    String startTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 1st Query : " + startTime1);
+    Thread.sleep(1000);
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    Thread.sleep(1000);
+    String endTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 1st Query : " + endTime1);
+
+    Thread.sleep(1000);
+
+    String startTime2 = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 2nd Query : " + startTime2);
+    Thread.sleep(1000);
+    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
+    Thread.sleep(1000);
+    String endTime2 = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 2nd Query : " + endTime2);
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(null, null, null, sessionHandleString, startTime1, endTime1);
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not CANCELED");
+
+    qHelper.killQuery(null, null, null, sessionHandleString, startTime2, endTime2);
+
+    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
+    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+
+  }
+
+
+  @Test(enabled = true)
+  public void killQueryByAllFilter() throws Exception {
+
+    String queryName1 = "TestKill";
+
+    String startTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("Start Time of 1st Query : " + startTime1);
+    Thread.sleep(1000);
+
+    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName1).getData();
+    Thread.sleep(1000);
+
+    String endTime1 = String.valueOf(System.currentTimeMillis());
+    logger.info("End Time of 1st Query : " + endTime1);
+
+    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
+
+    qHelper.killQuery(queryName1, "RUNNING", lens.getUserName(), sessionHandleString, startTime1, endTime1);
+
+    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
+    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/2aaf6e0a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
index cad2937..93de982 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITListQueryTest.java
@@ -52,12 +52,12 @@ public class ITListQueryTest extends BaseTestClass {
   public void initialize() throws IOException, JAXBException, LensException {
     servLens = ServiceManagerHelper.init();
     logger.info("Creating a new Session");
-    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
   }
 
   @BeforeMethod(alwaysRun = true)
   public void setUp(Method method) throws Exception {
     logger.info("Test Name: " + method.getName());
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
   }
 
   @AfterMethod(alwaysRun = true)
@@ -65,12 +65,15 @@ public class ITListQueryTest extends BaseTestClass {
     logger.info("Test Name: " + method.getName());
     qHelper.killQuery(null, "QUEUED", "all");
     qHelper.killQuery(null, "RUNNING", "all");
+    if (sessionHandleString != null){
+      sHelper.closeSession();
+    }
+    sessionHandleString = null;
   }
 
   @AfterClass(alwaysRun = true)
   public void closeSession() throws Exception {
     logger.info("Closing Session");
-    sHelper.closeSession();
   }
 
   @DataProvider(name = "query-provider")

http://git-wip-us.apache.org/repos/asf/lens/blob/2aaf6e0a/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
index fd73ba4..dc3d685 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITPreparedQueryTests.java
@@ -70,18 +70,27 @@ public class ITPreparedQueryTests extends BaseTestClass {
   public void initialize() throws IOException, JAXBException, LensException {
     servLens = ServiceManagerHelper.init();
     logger.info("Creating a new Session");
-    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
   }
 
   @BeforeMethod(alwaysRun = true)
   public void setUp(Method method) throws Exception {
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
     logger.info("Test Name: " + method.getName());
   }
 
+
+  @AfterMethod(alwaysRun = true)
+  public void afterMethod(Method method) throws Exception {
+    logger.info("Test Name: " + method.getName());
+    if (sessionHandleString != null){
+      sHelper.closeSession();
+    }
+    sessionHandleString = null;
+  }
+
   @AfterClass(alwaysRun = true)
   public void closeSession() throws Exception {
     logger.info("Closing Session");
-    sHelper.closeSession();
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/lens/blob/2aaf6e0a/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
index 7b8b377..cf6f82a 100644
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITQueryApiTests.java
@@ -20,9 +20,7 @@
 package org.apache.lens.regression.client;
 
 import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 
 import javax.ws.rs.client.WebTarget;
 import javax.ws.rs.core.GenericType;
@@ -33,7 +31,6 @@ import org.apache.lens.api.LensConf;
 import org.apache.lens.api.query.*;
 import org.apache.lens.api.result.LensAPIResult;
 import org.apache.lens.cube.parse.CubeQueryConfUtil;
-import org.apache.lens.regression.core.constants.DriverConfig;
 import org.apache.lens.regression.core.constants.QueryInventory;
 import org.apache.lens.regression.core.constants.QueryURL;
 import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
@@ -56,7 +53,7 @@ public class ITQueryApiTests extends BaseTestClass {
   WebTarget servLens;
   private String sessionHandleString;
 
-  private String hiveDriverSitePath  = lens.getServerDir() + "/conf/drivers/hive/hive1/hivedriver-site.xml";
+  String lensSiteConf = lens.getServerDir() + "/conf/lens-site.xml";
   private static Logger logger = Logger.getLogger(ITQueryApiTests.class);
 
   @BeforeClass(alwaysRun = true)
@@ -262,7 +259,6 @@ public class ITQueryApiTests extends BaseTestClass {
 //    InMemoryQueryResult ResultSetJson = (InMemoryQueryResult) qHelper.getResultSetJson(queryHandle1, "0", "100");
   }
 
-
   @Test
   public void testQueryResultJsonPersistent() throws Exception {
 
@@ -398,125 +394,6 @@ public class ITQueryApiTests extends BaseTestClass {
     Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
   }
 
-  /* LENS-1019 : If query is repeated from user - with same query, same name, same conf on the same session
-     and earlier is still queued or running, then return the same handle.
-  */
-
-  @DataProvider(name = "query_names")
-  public Object[][] queryName() {
-    String[][] testData = {{"query-name"}, {null}};
-    return testData;
-  }
-
-  @Test(dataProvider = "query_names", enabled = true)
-  public void testRunningSameNameSessionQuery(String queryName) throws Exception {
-
-    String query = QueryInventory.getSleepQuery("10");
-    List<QueryHandle> handleList = new ArrayList<>();
-    List<PersistentQueryResult> resultList = new ArrayList<>();
-
-    for(int i=0; i<3; i++){
-      handleList.add((QueryHandle) qHelper.executeQuery(query, queryName).getData());
-    }
-
-    Assert.assertEquals(handleList.get(1).getHandleIdString(), handleList.get(0).getHandleIdString());
-    Assert.assertEquals(handleList.get(2).getHandleIdString(), handleList.get(0).getHandleIdString());
-
-    for(QueryHandle handle : handleList){
-      LensQuery lq = qHelper.waitForCompletion(handle);
-      Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-      resultList.add((PersistentQueryResult) qHelper.getResultSet(handle));
-    }
-
-    Assert.assertEquals(resultList.get(1).getPersistedURI(), resultList.get(0).getPersistedURI());
-    Assert.assertEquals(resultList.get(2).getPersistedURI(), resultList.get(0).getPersistedURI());
-  }
-
-  @Test(enabled = true)
-  public void testQueuedSameNameSessionQuery() throws Exception {
-
-    String query = QueryInventory.getSleepQuery("10");
-    List<QueryHandle> handleList = new ArrayList<>();
-    List<PersistentQueryResult> resultList = new ArrayList<>();
-    HashMap<String, String> map = LensUtil.getHashMap(DriverConfig.MAX_CONCURRENT_QUERIES, "1");
-
-    try {
-      Util.changeConfig(map, hiveDriverSitePath);
-      lens.restart();
-
-      //Fire long running query so that 2nd  query is in queued state
-      qHelper.executeQuery(query, "query1").getData();
-
-      for (int i = 0; i < 3; i++) {
-        handleList.add((QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_CUBE_QUERY, "query1").getData());
-      }
-
-      Assert.assertEquals(handleList.get(1), handleList.get(0));
-      Assert.assertEquals(handleList.get(2), handleList.get(0));
-
-      for (QueryHandle handle : handleList) {
-        LensQuery lq = qHelper.waitForCompletion(handle);
-        Assert.assertEquals(lq.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-        resultList.add((PersistentQueryResult) qHelper.getResultSet(handle));
-      }
-
-      Assert.assertEquals(resultList.get(1).getPersistedURI(), resultList.get(0).getPersistedURI());
-      Assert.assertEquals(resultList.get(2).getPersistedURI(), resultList.get(0).getPersistedURI());
-
-    } finally {
-      Util.changeConfig(hiveDriverSitePath);
-      lens.restart();
-    }
-  }
-
-  @Test(enabled = false)
-  public void differentQuerySameNameSession() throws Exception {
-
-    String cost5 = String.format(QueryInventory.getQueryFromInventory("HIVE.SLEEP_COST_5"), "5");
-    String cost3 = String.format(QueryInventory.getQueryFromInventory("HIVE.SLEEP_COST_3"), "3");
-
-    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(cost5, "queryName").getData();
-    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(cost3, "queryName").getData();
-
-    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
-  }
-
-  @Test(enabled = false)
-  public void differentSessionSameNameQuery() throws Exception {
-
-    String query = QueryInventory.getSleepQuery("10");
-    String session1 = sHelper.openSession("user1", "pwd1", lens.getCurrentDB());
-    String session2 = sHelper.openSession("user2", "pwd2", lens.getCurrentDB());
-    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(query, "name", session1).getData();
-    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(query, "name", session2).getData();
-    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
-  }
-
-  @Test(enabled = false)
-  public void differentNameSameSessionQuery() throws Exception {
-    String query = QueryInventory.getSleepQuery("3");
-    QueryHandle handle1 = (QueryHandle) qHelper.executeQuery(query, "name1").getData();
-    QueryHandle handle2 = (QueryHandle) qHelper.executeQuery(query, "name2").getData();
-    Assert.assertFalse(handle1.getHandleIdString().equals(handle2.getHandleIdString()));
-  }
-
-  @Test(enabled = false)
-  public void differentConfSameNameSessionQuery() throws Exception {
-
-    String query = QueryInventory.getSleepQuery("5");
-    LensConf lensConf = new LensConf();
-
-    lensConf.addProperty(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "false");
-    QueryHandle qhr1 = (QueryHandle) qHelper.executeQuery(query, "query-name", null, sessionHandleString,
-        lensConf).getData();
-
-    lensConf.addProperty(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "true");
-    QueryHandle qhr2 = (QueryHandle) qHelper.executeQuery(query, "query-name", null, sessionHandleString,
-         lensConf).getData();
-
-    Assert.assertFalse(qhr1.getHandleIdString().equals(qhr2.getHandleIdString()));
-  }
-
   // LENS-1186
   @Test
   public void testInvalidOperation() throws Exception {
@@ -556,4 +433,61 @@ public class ITQueryApiTests extends BaseTestClass {
     });
     Assert.assertEquals(result.getErrorCode(), 2005);
   }
+
+  //LENS-1304
+  @Test(enabled = true)
+  public void testDriverQueryAfterQueryPurge() throws Exception {
+
+    try{
+      HashMap<String, String> map = LensUtil.getHashMap(LensConfConstants.PURGE_INTERVAL, "3000");
+      Util.changeConfig(map, lensSiteConf);
+      lens.restart();
+
+      QueryHandle q1 = (QueryHandle) qHelper.executeQuery(QueryInventory.HIVE_DIM_QUERY).getData();
+      QueryHandle q2 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY).getData();
+
+      qHelper.waitForCompletion(q1);
+      qHelper.waitForCompletion(q2);
+
+      String hiveDriverQuery = "INSERT OVERWRITE DIRECTORY \""+lens.getServerHdfsUrl()+"/tmp/lensreports/hdfsout/"
+          + q1 + "\" ROW FORMAT SERDE 'org.apache.lens.lib.query.CSVSerde' STORED AS TEXTFILE SELECT "
+          + "(sample_dim2.id), (sample_dim2.name) FROM "+lens.getCurrentDB()+".local_dim_table2 sample_dim2 WHERE "
+          + "((((sample_dim2.name) != 'first') AND ((sample_dim2.dt = 'latest'))))";
+
+      String jdbcDriverQuery = "SELECT (sample_db_dim.id), (sample_db_dim.name) FROM " + lens.getCurrentDB()
+          + ".mydb_dim_table3 sample_db_dim WHERE ((((sample_db_dim.name) != 'first')))";
+
+      //Waiting for query to get purged
+      Thread.sleep(5000);
+
+      LensQuery l1 =  qHelper.getLensQuery(sessionHandleString, q1);
+      LensQuery l2 =  qHelper.getLensQuery(sessionHandleString, q2);
+
+      Assert.assertEquals(l1.getDriverQuery().trim(), hiveDriverQuery);
+      Assert.assertEquals(l2.getDriverQuery().trim(), jdbcDriverQuery);
+
+      //TODO : assert value from DB as well.
+
+    } catch(Exception e){
+      Util.changeConfig(lensSiteConf);
+      lens.restart();
+    }
+  }
+
+  @Test
+  public void testTimeout() throws Exception {
+
+    sHelper.setAndValidateParam(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, "false");
+    sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_SET, "true");
+    sHelper.setAndValidateParam(LensConfConstants.QUERY_PERSISTENT_RESULT_INDRIVER, "false");
+    String query = QueryInventory.getSleepQuery("10");
+
+    Long t1 = System.currentTimeMillis();
+    QueryHandleWithResultSet qhr1 = (QueryHandleWithResultSet) qHelper.executeQueryTimeout(query, "80000",
+        null, sessionHandleString).getData();
+    Long t2 = System.currentTimeMillis();
+    long diff = (t2 - t1)/1000;
+    Assert.assertTrue(diff < 20); // adding 10 seconds extra buffer time
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/2aaf6e0a/lens-regression/src/test/java/org/apache/lens/regression/client/ITScheduleQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITScheduleQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITScheduleQueryTests.java
deleted file mode 100644
index 4e45c4c..0000000
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/ITScheduleQueryTests.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.lens.regression.client;
-
-import java.lang.reflect.Method;
-import java.util.Calendar;
-import java.util.List;
-
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.MediaType;
-
-import org.apache.lens.api.APIResult;
-import org.apache.lens.api.scheduler.*;
-import org.apache.lens.regression.core.constants.QueryInventory;
-import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
-import org.apache.lens.regression.core.testHelper.BaseTestClass;
-import org.apache.lens.regression.util.Util;
-
-import org.apache.log4j.Logger;
-
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-
-
-public class ITScheduleQueryTests extends BaseTestClass {
-
-  WebTarget servLens;
-  private String sessionHandleString;
-
-  private static Logger logger = Logger.getLogger(ITScheduleQueryTests.class);
-  private static String format = "yyyy-MM-dd HH:mm:ss";
-  private static String currentDate = Util.getCurrentDate(format);
-
-  @BeforeClass(alwaysRun = true)
-  public void initialize() throws Exception {
-    servLens = ServiceManagerHelper.init();
-  }
-
-  @BeforeMethod(alwaysRun = true)
-  public void setUp(Method method) throws Exception {
-    logger.info("Test Name: " + method.getName());
-    logger.info("Creating a new Session");
-    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
-  }
-
-  @AfterMethod(alwaysRun = true)
-  public void closeSession() throws Exception {
-    logger.info("Closing Session");
-    if (sessionHandleString != null){
-      sHelper.closeSession();
-    }
-  }
-
-
-  @Test
-  public void submitJob() throws Exception {
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 4);
-    XJob xJob = scheduleHelper.getXJob("job-submit", QueryInventory.QUERY, null, currentDate, endDate,
-        XFrequencyEnum.DAILY);
-    String jobHandle = scheduleHelper.submitJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.NEW);
-  }
-
-  @Test
-  public void submitNScheduleQuery() throws Exception {
-
-    String startDate = Util.modifyDate(currentDate, format, Calendar.DATE, -1);
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 3);
-    XJob xJob = scheduleHelper.getXJob("job-submit-schedule", QueryInventory.JDBC_CUBE_QUERY, null, startDate,
-        endDate, XFrequencyEnum.DAILY);
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SCHEDULED);
-
-    SchedulerJobInfo jobInfo = scheduleHelper.getJobDetails(jobHandle, sessionHandleString);
-    Assert.assertNotNull(jobInfo);
-    Assert.assertEquals(jobInfo.getJob().getName(), "job-submit-schedule");
-  }
-
-  //submit and schedule and also get job definition
-  @Test
-  public void submitNScheduleQueryCronExp() throws Exception {
-
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 1);
-    XJob xJob = scheduleHelper.getXJob("job-submit-schedule-cronExp", QueryInventory.QUERY, null, currentDate,
-        endDate, "0/30 * * * * ?");
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-
-    XJob job = scheduleHelper.getJobDefinition(jobHandle, sessionHandleString, MediaType.APPLICATION_XML_TYPE,
-        MediaType.APPLICATION_XML);
-    Assert.assertNotNull(job);
-    Assert.assertEquals(job.getName(), "job-submit-schedule-cronExp");
-  }
-
-
-  @Test
-  public void testDeleteJob() throws Exception {
-
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 1);
-    XJob xJob = scheduleHelper.getXJob("job-delete", QueryInventory.QUERY, null, currentDate, endDate,
-         "0/30 * * * * ?");
-
-    //delete in submit state
-    String jobHandle = scheduleHelper.submitJob(xJob, sessionHandleString);
-    APIResult res = scheduleHelper.deleteJob(jobHandle, sessionHandleString);
-//    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.DELETED);
-
-    //delete in scheduled state
-    jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    res = scheduleHelper.deleteJob(jobHandle, sessionHandleString);
-//    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.DELETED);
-
-    //delete in suspended state
-    jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    scheduleHelper.updateJob(jobHandle, "SUSPEND", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SUSPENDED);
-    res = scheduleHelper.deleteJob(jobHandle, sessionHandleString);
-//    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.DELETED);
-
-    //delete in expired state
-    jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    scheduleHelper.updateJob(jobHandle, "EXPIRE", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.EXPIRED);
-    res = scheduleHelper.deleteJob(jobHandle, sessionHandleString);
-//    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.DELETED);
-  }
-
-  @Test
-  public void testUpdateJob() throws Exception {
-
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 4);
-    XJob job = scheduleHelper.getXJob("job-update", QueryInventory.QUERY, null, currentDate, endDate,
-        XFrequencyEnum.WEEKLY);
-    String jobHandle = scheduleHelper.submitJob(job, sessionHandleString);
-
-    XJob tmp = scheduleHelper.getJobDefinition(jobHandle, sessionHandleString);
-    tmp.setName("modified-name");
-    endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 6);
-    tmp.setEndTime(Util.getGregorianCalendar(endDate));
-    APIResult res = scheduleHelper.updateJob(tmp, jobHandle, sessionHandleString);
-    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-
-    XJob modifiedJob = scheduleHelper.getJobDefinition(jobHandle, sessionHandleString);
-    Assert.assertEquals(modifiedJob.getName(), "modified-name");
-    String modifiedEndTime = Util.getDateStringFromGregorainCalender(modifiedJob.getEndTime(), format);
-    Assert.assertEquals(modifiedEndTime, endDate);
-  }
-
-  @Test
-  public void testUpdateJobAction() throws Exception {
-
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 1);
-    XJob job = scheduleHelper.getXJob("job-update-action", QueryInventory.QUERY, null, currentDate, endDate,
-        "0/20 * * * * ?");
-    String jobHandle = scheduleHelper.submitJob(job, sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.NEW);
-
-    scheduleHelper.updateJob(jobHandle, "SCHEDULE", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SCHEDULED);
-
-    scheduleHelper.updateJob(jobHandle, "SUSPEND", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SUSPENDED);
-
-    scheduleHelper.updateJob(jobHandle, "RESUME", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SCHEDULED);
-
-    scheduleHelper.updateJob(jobHandle, "EXPIRE", sessionHandleString);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.EXPIRED);
-  }
-
-  @Test
-  public void testGetAllInstancesOfAJob() throws Exception {
-
-    String startDate = Util.modifyDate(Util.getCurrentDate(format), format, Calendar.SECOND, 5);
-    String endDate = Util.modifyDate(startDate, format, Calendar.MINUTE, 4);
-    XJob xJob = scheduleHelper.getXJob("job-update-action", QueryInventory.QUERY, null, startDate, endDate,
-        "0/20 * * * * ?");
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-
-    Thread.sleep(60000);
-
-    List<SchedulerJobInstanceInfo> instanceList = scheduleHelper.getAllInstancesOfJob(jobHandle, "10",
-        sessionHandleString);
-    Assert.assertEquals(instanceList.size(), 3);
-  }
-
-
-  @Test
-  public void updateInstance() throws Exception {
-
-    String startDate = Util.modifyDate(Util.getCurrentDate(format), format, Calendar.SECOND, 10);
-    String endDate = Util.modifyDate(startDate, format, Calendar.MINUTE, 3);
-    XJob xJob = scheduleHelper.getXJob("job-update-action", QueryInventory.JDBC_DIM_QUERY, null, startDate, endDate,
-        "0/20 * * * * ?");
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-
-    Thread.sleep(20000);
-
-    List<SchedulerJobInstanceInfo> instanceList = scheduleHelper.getAllInstancesOfJob(jobHandle, "10",
-        sessionHandleString);
-
-    Thread.sleep(10000);
-
-    APIResult res = scheduleHelper.updateInstance(instanceList.get(0).getId().getHandleIdString(),
-        "RERUN", sessionHandleString);
-    Assert.assertEquals(res.getStatus(), APIResult.Status.SUCCEEDED);
-
-    SchedulerJobInstanceInfo instanceInfo = scheduleHelper.getInstanceDetails(instanceList.get(0).getId()
-        .getHandleIdString(), sessionHandleString);
-    List<SchedulerJobInstanceRun> runList = instanceInfo.getInstanceRunList();
-    Assert.assertEquals(runList.size(), 2);
-    Assert.assertEquals(runList.get(1).getRunId(), 2);
-  }
-
-
-  @Test(enabled = true)
-  public void restart() throws Exception {
-
-    String startDate = Util.modifyDate(Util.getCurrentDate(format), format, Calendar.SECOND, 5);
-    String endDate = Util.modifyDate(startDate, format, Calendar.MINUTE, 2);
-    XJob xJob = scheduleHelper.getXJob("job-restart", QueryInventory.QUERY, null, startDate, endDate, "0/20 * * * * ?");
-
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-
-    Thread.sleep(20000);
-    lens.stop();
-    Thread.sleep(20000);
-    lens.start();
-    Thread.sleep(60000);
-
-    List<SchedulerJobInstanceInfo> instanceList = scheduleHelper.getAllInstancesOfJob(jobHandle, "50",
-        sessionHandleString);
-    Assert.assertEquals(instanceList.size(), 6);
-  }
-
-  //LENS
-  @Test
-  public void testMisfiredEvents() throws Exception {
-
-    String startDate = Util.modifyDate(currentDate, format, Calendar.DATE, -2);
-    String endDate = Util.modifyDate(currentDate, format, Calendar.DATE, 3);
-    XJob xJob = scheduleHelper.getXJob("job-misfire", QueryInventory.JDBC_CUBE_QUERY, null, startDate,
-        endDate, XFrequencyEnum.DAILY);
-    String jobHandle = scheduleHelper.submitNScheduleJob(xJob, sessionHandleString);
-    Assert.assertNotNull(jobHandle);
-    Assert.assertEquals(scheduleHelper.getJobStatus(jobHandle), SchedulerJobState.SCHEDULED);
-
-    List<SchedulerJobInstanceInfo> instanceList = scheduleHelper.getAllInstancesOfJob(jobHandle, "10",
-        sessionHandleString);
-    Assert.assertEquals(instanceList.size(), 3);
-
-    if (jobHandle!=null){
-      scheduleHelper.updateJob(jobHandle, "EXPIRE", sessionHandleString);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/lens/blob/2aaf6e0a/lens-regression/src/test/java/org/apache/lens/regression/client/ITSessionResourceTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/ITSessionResourceTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/ITSessionResourceTests.java
new file mode 100644
index 0000000..d39a2bd
--- /dev/null
+++ b/lens-regression/src/test/java/org/apache/lens/regression/client/ITSessionResourceTests.java
@@ -0,0 +1,401 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.lens.regression.client;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.GenericType;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import javax.xml.bind.JAXBException;
+
+import org.apache.lens.api.StringList;
+import org.apache.lens.api.query.LensQuery;
+import org.apache.lens.api.query.QueryHandle;
+import org.apache.lens.api.query.QueryStatus;
+import org.apache.lens.api.session.UserSessionInfo;
+import org.apache.lens.regression.core.constants.MetastoreURL;
+import org.apache.lens.regression.core.constants.QueryInventory;
+import org.apache.lens.regression.core.constants.QueryURL;
+import org.apache.lens.regression.core.constants.SessionURL;
+import org.apache.lens.regression.core.helpers.ServiceManagerHelper;
+import org.apache.lens.regression.core.testHelper.BaseTestClass;
+import org.apache.lens.regression.core.type.FormBuilder;
+import org.apache.lens.regression.core.type.MapBuilder;
+import org.apache.lens.regression.util.AssertUtil;
+import org.apache.lens.regression.util.Util;
+import org.apache.lens.server.api.error.LensException;
+import org.apache.lens.server.api.util.LensUtil;
+
+import org.apache.log4j.Logger;
+
+import org.testng.Assert;
+import org.testng.annotations.*;
+
+import com.jcraft.jsch.JSchException;
+
+public class ITSessionResourceTests extends BaseTestClass {
+
+  WebTarget servLens;
+  private String sessionHandleString;
+
+  private final String hdfsJarPath = lens.getServerHdfsUrl() + "/tmp";
+  private final String localJarPath = new File("").getAbsolutePath() + "/lens-regression/target/testjars/";
+  private final String hiveUdfJar = "hiveudftest.jar";
+  private final String serverResourcePath = "/tmp/regression/resources";
+
+  private static String newParamsKey = "datanucleus.autoCreateSchema";
+  private static String newParamsValue = "false";
+  private static String createSleepFunction = "CREATE TEMPORARY FUNCTION sleep AS 'SampleUdf'";
+  private static Logger logger = Logger.getLogger(ITSessionResourceTests.class);
+
+
+  @BeforeClass(alwaysRun = true)
+  public void initialize() throws IOException, JSchException, JAXBException, LensException {
+    servLens = ServiceManagerHelper.init();
+  }
+
+  @BeforeMethod(alwaysRun = true)
+  public void setUp(Method method) throws Exception {
+    logger.info("Test Name: " + method.getName());
+    logger.info("Creating a new Session");
+    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
+  }
+
+  @AfterMethod(alwaysRun = true)
+  public void closeSession() throws Exception {
+    logger.info("Closing Session");
+    sHelper.closeSession();
+  }
+
+  private boolean checkSessionParamMap(String sessionHandle) throws Exception {
+    MapBuilder query = new MapBuilder("sessionid", sessionHandle, "verbose", "true");
+    Response response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
+    AssertUtil.assertSucceededResponse(response);
+    StringList strList = response.readEntity(new GenericType<StringList>(StringList.class));
+    HashMap<String, String> map = Util.stringListToMap(strList);
+    if (map == null) {
+      return false;
+    }
+    return true;
+  }
+
+
+  @Test
+  public void testSessionGet() throws Exception {
+    String newSessionHandle = sHelper.openSession("diff", "diff");
+    Assert.assertNotNull(newSessionHandle);
+  }
+
+
+  @Test
+  public void testSessionParamsGetVerbose() throws Exception {
+    Assert.assertTrue(checkSessionParamMap(sessionHandleString), "Returned Empty Params list");
+  }
+
+
+  @Test
+  public void testSessionParamsGetNPut() throws Exception {
+
+    Map<String, String> resource = LensUtil.getHashMap("sessionid", sessionHandleString, "key", newParamsKey,
+      "value", newParamsValue);
+    FormBuilder formData = new FormBuilder(resource);
+    Response response = lens.sendForm("put", SessionURL.SESSION_PARAMS_URL, formData);
+    AssertUtil.assertSucceededResult(response);
+
+    String value = sHelper.getSessionParam(newParamsKey);
+    Assert.assertEquals(value, newParamsValue, "From Session Params Put");
+
+  }
+
+  //Negative Test Case
+  @Test
+  public void testSessionGetUndefinedParams() throws Exception {
+    String undefinedParamsKey = "test123";
+    MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "key", undefinedParamsKey);
+    Response response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
+    Assert.assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode());
+  }
+
+/*
+ * Testing if Session is restored after server restart
+ */
+
+  @Test
+  public void testSessionRestore() throws Exception {
+
+    Map<String, String> resource = LensUtil.getHashMap("sessionid", sessionHandleString,
+      "key", newParamsKey, "value", newParamsValue);
+    FormBuilder formData = new FormBuilder(resource);
+
+    Response response = lens.sendForm("put", SessionURL.SESSION_PARAMS_URL, formData);
+    AssertUtil.assertSucceededResult(response);
+
+    lens.restart();
+
+    MapBuilder query = new MapBuilder("sessionid", sessionHandleString, "key", newParamsKey);
+    response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
+    AssertUtil.assertSucceededResponse(response);
+    StringList strList = response.readEntity(new GenericType<StringList>(StringList.class));
+    HashMap<String, String> map = Util.stringListToMap(strList);
+
+    Assert.assertEquals(map.get(newParamsKey), newParamsValue, "From Session Params Put");
+    Assert.assertEquals(map.size(), 1, "Params List contains more than one param");
+  }
+
+  @Test(enabled = true)
+  public void testSessionHDFSResourcePutNDelete() throws Exception {
+
+    String path = hdfsJarPath + "/" + hiveUdfJar;
+    sHelper.addResourcesJar(path);
+
+    QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+
+    sHelper.removeResourcesJar(path);
+
+    queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData();
+    lensQuery = qHelper.waitForCompletion(queryHandle);
+    // TODO : Works only when there is single instance for each driver
+//    Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.FAILED);
+
+  }
+
+
+  @Test
+  public void testSessionLocalResourcePutNDelete() throws Exception {
+
+    String path = serverResourcePath + "/" + hiveUdfJar;
+    sHelper.addResourcesJar(path);
+
+    QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData();
+    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle);
+    Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
+
+    sHelper.removeResourcesJar(path);
+
+    queryHandle = (QueryHandle) qHelper.executeQuery(createSleepFunction).getData();
+    lensQuery = qHelper.waitForCompletion(queryHandle);
+//  TODO : Works only when there is single instance for each driver
+//  Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.FAILED);
+
+  }
+
+  @Test
+  public void testListResources() throws Exception {
+
+    String path = serverResourcePath + "/" + hiveUdfJar;
+    sHelper.addResourcesJar(path);
+
+    MapBuilder query = new MapBuilder("sessionid", sessionHandleString);
+    Response response = lens.sendQuery("get", SessionURL.SESSION_LIST_RESOURCE_URL, query);
+    AssertUtil.assertSucceededResponse(response);
+    StringList responseString = response.readEntity(StringList.class);
+    List<String> jars = responseString.getElements();
+    for (String t : jars) {
+      Assert.assertTrue(t.contains(hiveUdfJar));
+    }
+  }
+
+
+  @Test
+  public void testSessionGone() throws Exception {
+
+    String newSession = sHelper.openSession("test", "test");
+    sHelper.closeSession(newSession);
+
+    MapBuilder query = new MapBuilder("sessionid", newSession);
+
+    // Get Session resources with closed session
+    Response response = lens.sendQuery("get", SessionURL.SESSION_LIST_RESOURCE_URL, query);
+    AssertUtil.assertGone(response);
+
+    // Get Session params with closd session
+    response = lens.sendQuery("get", SessionURL.SESSION_PARAMS_URL, query);
+    AssertUtil.assertGone(response);
+
+    //Setting DB with closed session Handle
+    response = lens.exec("post", MetastoreURL.METASTORE_DATABASES_URL, servLens,
+        null, query, MediaType.APPLICATION_XML_TYPE, null, lens.getCurrentDB());
+    AssertUtil.assertGone(response);
+
+    FormBuilder formData = new FormBuilder();
+    formData.add("sessionid", newSession);
+    formData.add("query", QueryInventory.QUERY);
+    formData.add("conf", "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><conf />");
+
+    //Explain Query with closed session Handle
+    formData.add("operation", "EXPLAIN");
+    response = lens.exec("post", QueryURL.QUERY_URL, servLens, null, null,
+        MediaType.MULTIPART_FORM_DATA_TYPE, MediaType.APPLICATION_XML, formData.getForm());
+    AssertUtil.assertGone(response);
+
+    //Execute Query with closed session Handle
+    formData.add("operation", "EXECUTE");
+    response = lens.exec("post", QueryURL.QUERY_URL, servLens, null, null,
+        MediaType.MULTIPART_FORM_DATA_TYPE, MediaType.APPLICATION_XML, formData.getForm());
+    AssertUtil.assertGone(response);
+
+  }
+
+  @Test
+  public void testOpenSessionWithDB() throws Exception {
+
+    String newDb = "opensessionwithdb";
+    mHelper.createDatabase(newDb);
+    String newSession = sHelper.openSession("test", "test", newDb);
+    String curDB = mHelper.getCurrentDatabase(newSession);
+    Assert.assertEquals(curDB, newDb, "Could not open session with passed db");
+    sHelper.closeSession(newSession);
+    mHelper.dropDatabase(newDb);
+  }
+
+  @Test
+  public void testOpenSessionDefault() throws Exception {
+
+    String newSession = sHelper.openSession("test", "test");
+    String curDB = mHelper.getCurrentDatabase(newSession);
+    Assert.assertEquals(curDB, "default", "Could not open session with passed db");
+    sHelper.closeSession(newSession);
+  }
+
+
+  @Test
+  public void testOpenSessionDBDoesnotExist() throws Exception {
+
+    Response response = sHelper.openSessionReturnResponse("test", "test", "dbdoesnotexist", null);
+    AssertUtil.assertNotFound(response);
+  }
+
+  @Test
+  public void testSessionDBChange() throws Exception {
+
+    String newDb = "opensessionwithdb";
+    String newDb1 = "opensessionwithdb1";
+    mHelper.createDatabase(newDb);
+    mHelper.createDatabase(newDb1);
+
+    String newSession = sHelper.openSession("test", "test", newDb);
+    String curDB = mHelper.getCurrentDatabase(newSession);
+    Assert.assertEquals(curDB, newDb, "Could not open session with passed db");
+
+    mHelper.setCurrentDatabase(newSession, newDb1);
+    curDB = mHelper.getCurrentDatabase(newSession);
+    Assert.assertEquals(curDB, newDb1, "Could not open session with passed db");
+
+    sHelper.closeSession(newSession);
+    mHelper.dropDatabase(newDb);
+    mHelper.dropDatabase(newDb1);
+  }
+
+  //Fails as closeSession cannot take json as input,. (No API can take json as input)
+  @Test(enabled = false)
+  public void testGetSessionJson() throws Exception {
+
+    String newSessionHandle = sHelper.openSession("diff", "diff", null, MediaType.APPLICATION_JSON);
+    Assert.assertNotNull(newSessionHandle);
+    Assert.assertFalse(newSessionHandle.isEmpty());
+    sHelper.closeSession(newSessionHandle, MediaType.APPLICATION_JSON);
+  }
+
+  @Test(enabled = true)
+  public void assertSucceededResponse() throws Exception {
+    String session = sHelper.openSession("diff", "diff", null, MediaType.APPLICATION_XML);
+    Assert.assertNotNull(session);
+    Assert.assertFalse(session.isEmpty());
+
+    MapBuilder query = new MapBuilder("sessionid", session);
+    Response response = lens.exec("delete", SessionURL.SESSION_BASE_URL, servLens, null, query, null,
+        MediaType.APPLICATION_JSON, null);
+    AssertUtil.assertSucceededResponse(response);
+  }
+
+
+  @Test(enabled = true)
+  public void listSessionTest() throws Exception {
+
+    int origSize = sHelper.getSessionList().size();
+    for(int i=1; i<4; i++) {
+      sHelper.openSession("u" + i, "p" + i);
+    }
+    List<UserSessionInfo> sessionList = sHelper.getSessionList();
+    Assert.assertEquals(sessionList.size(), origSize+3);
+  }
+
+  //TODO : enable when session handle returned is entire xml instead of just public id
+  @Test(enabled = false)
+  public void listSessionUserSessionInfoVerification() throws Exception {
+
+    List<UserSessionInfo> sessionList = sHelper.getSessionList();
+    for(UserSessionInfo u : sessionList){
+      System.out.println(u.toString() + "\n");
+      sHelper.closeSession(u.getHandle());
+    }
+
+    String session1 = sHelper.openSession("u1", "p1", lens.getCurrentDB());
+    String session2 = sHelper.openSession("u2", "p2", lens.getCurrentDB());
+
+    QueryHandle qh1 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY, null, session1).getData();
+    QueryHandle qh2 = (QueryHandle) qHelper.executeQuery(QueryInventory.JDBC_DIM_QUERY, null, session2).getData();
+
+    sessionList = sHelper.getSessionList();
+    Assert.assertEquals(sessionList.size(), 2);
+
+    UserSessionInfo s1 = sessionList.get(0);
+    Assert.assertEquals(s1.getUserName(), "u1");
+    List<QueryHandle> queryHandleList = s1.getActiveQueries();
+    Assert.assertEquals(queryHandleList.size(), 2);
+    Assert.assertTrue(queryHandleList.contains(qh1));
+    Assert.assertTrue(queryHandleList.contains(qh2));
+
+    for(UserSessionInfo u : sessionList){
+      System.out.println(u.toString() + "\n");
+      sHelper.closeSession(u.getHandle());
+    }
+  }
+
+  //LENS-1199
+  @Test(enabled = true)
+  public void multipleCloseSessionForActiveQueries() throws Exception {
+    String session = sHelper.openSession("diff", "diff", lens.getCurrentDB());
+    QueryHandle qh = (QueryHandle) qHelper.executeQuery(QueryInventory.getSleepQuery("3"), null, session).getData();
+    sHelper.closeSession(session);
+    sHelper.closeSession(session);
+  }
+
+  //LENS-1199
+  @Test(enabled = true)
+  public void multipleCloseSession() throws Exception {
+    String session = sHelper.openSession("diff", "diff", lens.getCurrentDB());
+    sHelper.closeSession(session);
+    MapBuilder query = new MapBuilder("sessionid", session);
+    Response response = lens.exec("delete", SessionURL.SESSION_BASE_URL, servLens, null, query);
+    AssertUtil.assertGone(response);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/lens/blob/2aaf6e0a/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java
----------------------------------------------------------------------
diff --git a/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java b/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java
deleted file mode 100644
index a39b2fe..0000000
--- a/lens-regression/src/test/java/org/apache/lens/regression/client/KillQueryTests.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.lens.regression.client;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Method;
-
-import javax.ws.rs.client.WebTarget;
-
-import javax.xml.bind.JAXBException;
-
-import org.apache.lens.api.query.*;
-import org.apache.lens.regression.core.constants.QueryInventory;
-import org.apache.lens.regression.core.helpers.*;
-import org.apache.lens.regression.core.testHelper.BaseTestClass;
-import org.apache.lens.server.api.error.LensException;
-
-import org.apache.log4j.Logger;
-
-import org.testng.Assert;
-import org.testng.annotations.*;
-
-
-public class KillQueryTests extends BaseTestClass {
-
-  WebTarget servLens;
-  private String sessionHandleString;
-
-  private final String hdfsJarPath = lens.getServerHdfsUrl() + "/tmp";
-  private final String localJarPath = new File("").getAbsolutePath() + "/lens-regression/target/testjars/";
-  private final String hiveUdfJar = "hiveudftest.jar";
-  private final String serverResourcePath = "/tmp/regression/resources";
-  String sleepQuery = QueryInventory.getSleepQuery("5");
-
-  private static Logger logger = Logger.getLogger(KillQueryTests.class);
-
-  @BeforeClass(alwaysRun = true)
-  public void initialize() throws IOException, JAXBException, LensException, IllegalAccessException,
-      InstantiationException {
-    servLens = ServiceManagerHelper.init();
-    logger.info("Creating a new Session");
-    sessionHandleString = sHelper.openSession(lens.getCurrentDB());
-
-    //TODO : Enable when udf registration per driver is fixed
-/*  HadoopUtil.uploadJars(localJarPath + "/" + hiveUdfJar, hdfsJarPath);
-    logger.info("Adding jar for making query to run for longer period of time");
-    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar);
-    QueryHandle queryHandle = (QueryHandle) qHelper.executeQuery(QueryInventory.SLEEP_FUNCTION).getData();*/
-  }
-
-  @BeforeMethod(alwaysRun = true)
-  public void setUp(Method method) throws Exception {
-    logger.info("Test Name: " + method.getName());
-  }
-
-
-  @AfterClass(alwaysRun = true)
-  public void closeSession() throws Exception {
-    logger.info("Closing Session");
-    sHelper.closeSession();
-  }
-
-
-  @Test(enabled = true)
-  public void killQueryByHandle() throws Exception {
-
-    QueryHandle qH = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    logger.info("QUERY HANDLE : " + qH);
-
-    QueryStatus queryStatus = qHelper.waitForQueryToRun(qH);
-    Assert.assertEquals(queryStatus.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    qHelper.killQueryByQueryHandle(qH);
-
-    queryStatus = qHelper.getQueryStatus(qH);
-    Assert.assertEquals(queryStatus.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-  }
-
-
-  @Test(enabled = true)
-  public void killQueryByUser() throws Exception {
-
-    String diffUser = "diff";
-    String diffPass = "diff";
-
-    String newSessionHandleSring = sHelper.openSession(diffUser, diffPass, lens.getCurrentDB());
-
-    logger.info("Adding jar for making query to run for longer period of time");
-    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar, newSessionHandleSring);
-
-    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    logger.info("1st QUERY HANDLE : " + queryHandle1);
-
-    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    logger.info("2nd QUERY HANDLE : " + queryHandle2);
-
-    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, null,
-        newSessionHandleSring).getData();
-    logger.info("3rd QUERY HANDLE : " + queryHandle3);
-
-    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
-    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
-    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3, newSessionHandleSring);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    Thread.sleep(1000);
-
-    qHelper.killQuery(null, null, lens.getUserName());
-    Thread.sleep(2000);
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    qHelper.killQuery(null, null, diffUser);
-
-    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
-    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-
-  }
-
-  @Test(enabled = true)
-  public void killQueryOfAllUser() throws Exception {
-
-    String diffUser = "diff";
-    String diffPass = "diff";
-    String newSessionHandleSring = sHelper.openSession(diffUser, diffPass, lens.getCurrentDB());
-    sHelper.addResourcesJar(hdfsJarPath + "/" + hiveUdfJar, newSessionHandleSring);
-
-    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, null,
-        newSessionHandleSring).getData();
-
-    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
-    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
-    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3, newSessionHandleSring);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    qHelper.killQuery(null, null, "all");
-
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-  }
-
-
-  @Test(enabled = true)
-  public void killAllQueryOfUser() throws Exception {
-
-    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-
-    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
-    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    qHelper.killQuery();
-
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-  }
-
-
-  @Test(enabled = true)
-  public void killQueryByState() throws Exception {
-
-    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-
-    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
-    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    //kill Running queries
-    qHelper.killQuery(null, "RUNNING");
-
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-
-    //kill Canceled query
-    qHelper.killQuery(null, "CANCELED");
-
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Running");
-
-    //kill successful query
-    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(QueryInventory.QUERY).getData();
-    LensQuery lensQuery = qHelper.waitForCompletion(queryHandle3);
-    Assert.assertEquals(lensQuery.getStatus().getStatus(), QueryStatus.Status.SUCCESSFUL);
-    qHelper.killQuery(null, "SUCCESSFUL");
-    QueryStatus queryStatus3 = qHelper.getQueryStatus(queryHandle3);
-    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.SUCCESSFUL);
-  }
-
-  //TODO: enable when the bug is fixed.
-
-   /* Currently doing kill query by queryName "query" will kill all the query with queryName as "*query*"
-    * Raised a JIRA for same
-    * When its Fixed Revisit this function */
-
-  @Test(enabled = false)
-  public void killQueryByQueryName() throws Exception {
-
-    String queryName1 = "queryNameFirst";
-    String queryName2 = "queryNameSecond";
-    String queryName3 = "Name";
-
-    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName1).getData();
-    logger.info("1st QUERY HANDLE : " + queryHandle1);
-
-    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName2).getData();
-    logger.info("2nd QUERY HANDLE : " + queryHandle2);
-
-    QueryHandle queryHandle3 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName3).getData();
-    logger.info("3rd QUERY HANDLE : " + queryHandle3);
-
-    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
-    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
-    QueryStatus queryStatus3 = qHelper.waitForQueryToRun(queryHandle3);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    qHelper.killQuery(queryName3);
-
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-    queryStatus3 = qHelper.getQueryStatus(queryHandle3);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus3.getStatus(), QueryStatus.Status.CANCELED, "Query is Not Cancelled");
-
-    qHelper.killQuery(queryName1);
-
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    qHelper.killQuery(queryName2);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
-  }
-
-  @Test(enabled = true)
-  public void killQueryByTimeRange() throws Exception {
-
-    String startTime1 = String.valueOf(System.currentTimeMillis());
-    logger.info("Start Time of 1st Query : " + startTime1);
-    Thread.sleep(1000);
-    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    Thread.sleep(1000);
-    String endTime1 = String.valueOf(System.currentTimeMillis());
-    logger.info("End Time of 1st Query : " + endTime1);
-
-    Thread.sleep(1000);
-
-    String startTime2 = String.valueOf(System.currentTimeMillis());
-    logger.info("Start Time of 2nd Query : " + startTime2);
-    Thread.sleep(1000);
-    QueryHandle queryHandle2 = (QueryHandle) qHelper.executeQuery(sleepQuery).getData();
-    Thread.sleep(1000);
-    String endTime2 = String.valueOf(System.currentTimeMillis());
-    logger.info("End Time of 2nd Query : " + endTime2);
-
-    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
-    QueryStatus queryStatus2 = qHelper.waitForQueryToRun(queryHandle2);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    qHelper.killQuery(null, null, null, sessionHandleString, startTime1, endTime1);
-
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.RUNNING, "Query is Not CANCELED");
-
-    qHelper.killQuery(null, null, null, sessionHandleString, startTime2, endTime2);
-
-    queryStatus2 = qHelper.getQueryStatus(queryHandle2);
-    Assert.assertEquals(queryStatus2.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
-
-  }
-
-
-  @Test(enabled = true)
-  public void killQueryByAllFilter() throws Exception {
-
-    String queryName1 = "TestKill";
-
-    String startTime1 = String.valueOf(System.currentTimeMillis());
-    logger.info("Start Time of 1st Query : " + startTime1);
-    Thread.sleep(1000);
-
-    QueryHandle queryHandle1 = (QueryHandle) qHelper.executeQuery(sleepQuery, queryName1).getData();
-    Thread.sleep(1000);
-
-    String endTime1 = String.valueOf(System.currentTimeMillis());
-    logger.info("End Time of 1st Query : " + endTime1);
-
-    QueryStatus queryStatus1 = qHelper.waitForQueryToRun(queryHandle1);
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.RUNNING, "Query is Not Running");
-
-    qHelper.killQuery(queryName1, "RUNNING", lens.getUserName(), sessionHandleString, startTime1, endTime1);
-
-    queryStatus1 = qHelper.getQueryStatus(queryHandle1);
-    Assert.assertEquals(queryStatus1.getStatus(), QueryStatus.Status.CANCELED, "Query is Not CANCELED");
-  }
-
-}
-