LENS-1239 : Fix test failures because of restarts in test cases

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

Branch: refs/heads/current-release-line
Commit: fc3dc04acc1aff1154745fa5132cb975ac5fabb8
Parents: 0debd08
Author: Amareshwari Sriramadasu <[email protected]>
Authored: Wed Jul 27 15:02:14 2016 +0530
Committer: Rajat Khandelwal <[email protected]>
Committed: Wed Jul 27 15:02:14 2016 +0530

----------------------------------------------------------------------
 .../org/apache/lens/client/TestLensClient.java  |  11 +-
 lens-client/src/test/resources/lens-site.xml    | 207 +++++++++++++++++++
 .../server/query/QueryExecutionServiceImpl.java |   9 +-
 .../org/apache/lens/server/LensJerseyTest.java  |  13 +-
 .../apache/lens/server/LensServerTestUtil.java  |  41 +++-
 .../apache/lens/server/TestServerRestart.java   |  45 +++-
 .../lens/server/query/TestDuplicateQueries.java |   4 +-
 .../lens/server/query/TestQueryConstraints.java |   4 +-
 .../TestQueryIndependenceFromSessionClose.java  |  11 +-
 .../server/session/TestSessionResource.java     |  57 -----
 10 files changed, 319 insertions(+), 83 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java
----------------------------------------------------------------------
diff --git 
a/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java 
b/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java
index c3f01d5..94a788a 100644
--- a/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java
+++ b/lens-client/src/test/java/org/apache/lens/client/TestLensClient.java
@@ -39,7 +39,6 @@ import org.apache.lens.client.exceptions.LensAPIException;
 import org.apache.lens.client.exceptions.LensClientIOException;
 import org.apache.lens.client.resultset.ResultSet;
 import org.apache.lens.server.LensAllApplicationJerseyTest;
-import org.apache.lens.server.api.util.LensUtil;
 
 import org.testng.Assert;
 import org.testng.annotations.*;
@@ -59,12 +58,6 @@ public class TestLensClient extends 
LensAllApplicationJerseyTest {
     return 
UriBuilder.fromUri("http://localhost/";).port(getTestPort()).path("/lensapi").build();
   }
 
-  @Override
-  public Map<String, String> getServerConfOverWrites() {
-    return LensUtil.getHashMap("lens.server.query.service.impl",
-      "org.apache.lens.server.MockQueryExecutionServiceImpl");
-  }
-
   @BeforeTest
   public void setUp() throws Exception {
     super.setUp();
@@ -276,10 +269,10 @@ public class TestLensClient extends 
LensAllApplicationJerseyTest {
   @Test
   public void testWaitForQueryToCompleteWithAndWithoutRetryOnTimeOut() throws 
LensAPIException {
     LensClientConfig config = createLensClientConfigWithServerUrl();
+    config.set(ENABLE_SLEEP_FOR_GET_QUERY_OP, "true");
+    config.setInt(LensClientConfig.READ_TIMEOUT_MILLIS, 3000);
     try (LensClient lensClient = new LensClient(config)) {
-      config.setInt(LensClientConfig.READ_TIMEOUT_MILLIS, 3000);
       assertTrue(lensClient.setDatabase(TEST_DB));
-      lensClient.setConnectionParam(ENABLE_SLEEP_FOR_GET_QUERY_OP, "true");
 
       //Test waitForQueryToComplete without retry on timeout
       QueryHandle handle = lensClient.executeQueryAsynch("cube select id,name 
from test_dim", "test3");

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-client/src/test/resources/lens-site.xml
----------------------------------------------------------------------
diff --git a/lens-client/src/test/resources/lens-site.xml 
b/lens-client/src/test/resources/lens-site.xml
new file mode 100644
index 0000000..7fe65c0
--- /dev/null
+++ b/lens-client/src/test/resources/lens-site.xml
@@ -0,0 +1,207 @@
+<?xml version="1.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.
+
+-->
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+
+<configuration>
+  <property>
+    <name>lens.server.drivers</name>
+    
<value>hive:org.apache.lens.driver.hive.HiveDriver,jdbc:org.apache.lens.driver.jdbc.JDBCDriver,
+      mock:org.apache.lens.server.common.FailingQueryDriver</value> 
<!--$LENS_CONF/drivers-->
+  </property>
+
+  <property>
+    <name>lens.server.query.acceptors</name>
+    <value>org.apache.lens.server.query.BlahQueryAcceptor</value>
+    <description>Query Acceptors configured</description>
+  </property>
+
+  <property>
+    <name>test.lens.site.key</name>
+    <value>gsvalue</value>
+  </property>
+
+  <property>
+    <name>lens.server.enable.console.metrics</name>
+    <value>true</value>
+    <description>Enable metrics to be reported on console</description>
+  </property>
+
+  <property>
+    <name>lens.server.persist.location</name>
+    <value>target/persist-dir</value>
+  </property>
+
+  <property>
+    <name>lens.query.result.parent.dir</name>
+    <value>target/lens-results</value>
+  </property>
+  
+  <property>
+    <name>hive.server2.authentication</name>
+    <value>CUSTOM</value>
+  </property>
+
+  <property>
+    <name>hive.server2.custom.authentication.class</name>
+    <value>org.apache.lens.server.auth.FooBarAuthenticationProvider</value>
+  </property>
+
+
+  <property>
+    <name>lens.query.enable.mail.notify</name>
+    <value>false</value>
+    <description>When a query ends, whether to notify the submitter by mail or 
not.</description>
+  </property>
+
+  <property>
+    <name>lens.server.mail.from.address</name>
+    <value>[email protected]</value>
+    <description>The from field in the notifier mail to the 
submitter.</description>
+  </property>
+
+  <property>
+    <name>lens.server.mail.host</name>
+    <value>localhost</value>
+    <description>SMTP Host for sending mail</description>
+  </property>
+
+  <property>
+    <name>lens.server.mail.port</name>
+    <value>25000</value>
+    <description>SMTP Port</description>
+  </property>
+
+  <property>
+    <name>lens.server.ws.resourcenames</name>
+    
<value>session,metastore,query,quota,scheduler,index,log,test,savedquery</value>
+    <description>These JAX-RS resources would be started in the specified 
order when lens-server starts up</description>
+  </property>
+
+  <property>
+    <name>lens.server.test.ws.resource.impl</name>
+    <value>org.apache.lens.server.TestResource</value>
+    <description>Implementation class for Test Resource</description>
+  </property>
+
+  <property>
+    <name>lens.server.savedquery.ws.resource.impl</name>
+    <value>org.apache.lens.server.query.save.SavedQueryResource</value>
+    <description>Implementation class for saved query Resource</description>
+  </property>
+
+  <property>
+    <name>lens.server.user.resolver.type</name>
+    <value>FIXED</value>
+  </property>
+  <property>
+    <name>lens.server.user.resolver.fixed.value</name>
+    <value>testlensuser</value>
+  </property>
+  <property>
+    <name>lens.server.domain</name>
+    <value>localhost</value>
+  </property>
+
+  <property>
+    <!-- run every second -->
+    <name>lens.server.querypurger.sleep.interval</name>
+    <value>100</value>
+  </property>
+
+  <property>
+    <name>lens.server.db.jdbc.url</name>
+    <value>jdbc:hsqldb:target/queries.db</value>
+  </property>
+
+  <property>
+    <name>lens.server.savedquery.jdbc.dialectclass</name>
+    <value>org.apache.lens.server.query.save.SavedQueryDao$HSQLDialect</value>
+    <description>Dialect of the target DB, Default is HSQL</description>
+  </property>
+
+  <property>
+    <name>lens.server.servicenames</name>
+    
<value>session,query,metastore,scheduler,quota,mocknonlens,savedquery</value>
+  </property>
+
+  <property>
+    <name>lens.server.mocknonlens.service.impl</name>
+    <value>org.apache.lens.server.MockNonLensService</value>
+    <description>Implementation class for session service</description>
+  </property>
+
+  <property>
+    <name>lens.server.query.service.impl</name>
+    <value>org.apache.lens.server.MockQueryExecutionServiceImpl</value>
+    <description>Mock Implementation class for query service</description>
+  </property>
+
+  <property>
+    <name>lens.server.savedquery.service.impl</name>
+    <value>org.apache.lens.server.query.save.SavedQueryServiceImpl</value>
+    <description>Implementation class for saved query service</description>
+  </property>
+
+  <property>
+    <name>lens.server.ws.filternames</name>
+    <value>requestlogger,consistentState,serverMode,logging</value>
+    <description>These JAX-RS filters would be started in the specified order 
when lens-server starts up</description>
+  </property>
+
+  <property>
+    <name>lens.server.logging.ws.filter.impl</name>
+    <value>org.glassfish.jersey.filter.LoggingFilter</value>
+    <description>Logging filter</description>
+  </property>
+
+  <property>
+    <name>lens.server.database.resource.dir</name>
+    <value>target/resources</value>
+  </property>
+
+  <property>
+    <name>lens.server.statistics.warehouse.dir</name>
+    <value>file://${project.build.directory}/lens/statistics/warehouse</value>
+    <description>Default top level location where stats are moved by the log 
statistics store.</description>
+  </property>
+
+  <property>
+    <name>lens.server.estimate.timeout.millis</name>
+    <value>120000</value>
+  </property>
+  <property>
+    <name>lens.server.max.sessions.per.user</name>
+    <value>20</value>
+    <description>Number of sessions can be allowed for each user.</description>
+  </property>
+  <property>
+    <name>lens.server.status.update.exponential.wait.millis</name>
+    <value>1000</value>
+    <description>Number of millis that would grow exponentially for next 
update, incase of transient failures.
+    </description>
+  </property>
+  <property>
+    <name>lens.server.duplicate.query.allowed</name>
+    <value>true</value>
+  </property>
+
+</configuration>

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/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 4df2b9b..fddd3e4 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
@@ -2839,8 +2839,13 @@ public class QueryExecutionServiceImpl extends 
BaseLensService implements QueryE
         // query service will do the selection from existing drivers and update
         if (driverAvailable) {
           String selectedDriverQualifiedName = in.readUTF();
-          
ctx.getDriverContext().setSelectedDriver(drivers.get(selectedDriverQualifiedName));
-          ctx.setDriverQuery(ctx.getSelectedDriver(), 
ctx.getSelectedDriverQuery());
+          if (drivers.get(selectedDriverQualifiedName) != null) {
+            
ctx.getDriverContext().setSelectedDriver(drivers.get(selectedDriverQualifiedName));
+            ctx.setDriverQuery(ctx.getSelectedDriver(), 
ctx.getSelectedDriverQuery());
+          } else {
+            log.info("Ignoring {} as the driver is not loaded", 
ctx.getQueryHandle());
+            continue;
+          }
         }
         allQueries.put(ctx.getQueryHandle(), ctx);
       }

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java 
b/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java
index a55552e..7cccf30 100644
--- a/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java
+++ b/lens-server/src/test/java/org/apache/lens/server/LensJerseyTest.java
@@ -128,6 +128,10 @@ public abstract class LensJerseyTest extends JerseyTest {
     config.register(LensJAXBContextResolver.class);
   }
 
+  /**
+   * This should used only on restarts and not during initial setup.
+   * @return Modified Server conf with over-writes
+   */
   public final HiveConf getServerConf() {
     HiveConf serverConf = LensServerConf.getHiveConf();
     Map<String, String> overWrites = getServerConfOverWrites();
@@ -164,7 +168,7 @@ public abstract class LensJerseyTest extends JerseyTest {
     createTestDatabaseResources(new String[]{DB_WITH_JARS, DB_WITH_JARS_2},
       hiveConf);
 
-    LensServices.get().init(getServerConf());
+    LensServices.get().init(LensServerConf.getHiveConf());
     LensServices.get().start();
 
     // Check if mock service is started
@@ -226,8 +230,11 @@ public abstract class LensJerseyTest extends JerseyTest {
    * Restart lens server.
    */
   protected void restartLensServer() {
-    HiveConf h = getServerConf();
-    restartLensServer(h, false);
+    restartLensServer(LensServerConf.getHiveConf());
+  }
+
+  protected void restartLensServer(HiveConf conf) {
+    restartLensServer(conf, false);
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java 
b/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
index b651b79..67cee57 100644
--- a/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
+++ b/lens-server/src/test/java/org/apache/lens/server/LensServerTestUtil.java
@@ -30,6 +30,7 @@ import javax.ws.rs.client.WebTarget;
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.MediaType;
 
+import org.apache.lens.api.APIResult;
 import org.apache.lens.api.LensConf;
 import org.apache.lens.api.LensSessionHandle;
 import org.apache.lens.api.query.LensQuery;
@@ -136,7 +137,8 @@ public final class LensServerTestUtil {
         mt));
 
     final QueryHandle handle = target.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
-        new GenericType<LensAPIResult<QueryHandle>>() {}).getData();
+      new GenericType<LensAPIResult<QueryHandle>>() {
+      }).getData();
 
     // wait till the query finishes
     LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", 
lensSessionId).request(mt)
@@ -302,4 +304,41 @@ public final class LensServerTestUtil {
       }
     }
   }
+
+
+  public static LensSessionHandle openSession(WebTarget target, final String 
userName, final String passwd, final
+  LensConf
+    conf, MediaType
+    mt) {
+
+    final WebTarget sessionTarget = target.path("session");
+    final FormDataMultiPart mp = new FormDataMultiPart();
+
+    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("username").build(), 
userName));
+    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), passwd));
+    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
+      conf, mt));
+
+    return sessionTarget.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
+      LensSessionHandle.class);
+
+  }
+
+  public static void addResource(WebTarget target, final LensSessionHandle 
lensSessionHandle, final String
+    resourceType, final String resourcePath, MediaType mt) {
+    final WebTarget resourceTarget = target.path("session/resources");
+    final FormDataMultiPart mp = new FormDataMultiPart();
+    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), 
lensSessionHandle,
+      mt));
+    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("type").build(), 
resourceType));
+    mp.bodyPart(
+      new FormDataBodyPart(FormDataContentDisposition.name("path").build(), 
resourcePath));
+    APIResult result = resourceTarget.path("add").request(mt)
+      .put(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), 
APIResult.class);
+
+    if (!result.getStatus().equals(APIResult.Status.SUCCEEDED)) {
+      throw new RuntimeException("Could not add resource:" + result);
+    }
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java 
b/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java
index bb57614..20aa8cb 100644
--- a/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java
+++ b/lens-server/src/test/java/org/apache/lens/server/TestServerRestart.java
@@ -44,12 +44,15 @@ import org.apache.lens.server.api.query.QueryContext;
 import org.apache.lens.server.api.query.QueryExecutionService;
 import org.apache.lens.server.api.session.SessionService;
 import org.apache.lens.server.api.util.LensUtil;
+import org.apache.lens.server.common.LenServerTestException;
+import org.apache.lens.server.common.LensServerTestFileUtils;
 import org.apache.lens.server.common.TestResourceFile;
 import org.apache.lens.server.query.QueryExecutionServiceImpl;
 import org.apache.lens.server.query.TestQueryService;
 import org.apache.lens.server.session.HiveSessionService;
 import org.apache.lens.server.session.LensSessionImpl;
 
+import org.apache.commons.io.FileUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hive.service.Service;
 
@@ -57,9 +60,7 @@ import org.glassfish.jersey.media.multipart.FormDataBodyPart;
 import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
 import org.glassfish.jersey.media.multipart.FormDataMultiPart;
 import org.testng.Assert;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
+import org.testng.annotations.*;
 
 import com.google.common.base.Optional;
 import lombok.extern.slf4j.Slf4j;
@@ -99,6 +100,17 @@ public class TestServerRestart extends 
LensAllApplicationJerseyTest {
     super.tearDown();
   }
 
+  @BeforeClass
+  public void restartBeforeClass() throws Exception {
+    // restart server with test configuration for tests
+    restartLensServer(getServerConf());
+  }
+
+  @AfterClass
+  public void restart() throws Exception {
+    // restart server with normal configuration once the tests are done.
+    restartLensServer();
+  }
   /** The file created. */
   private boolean fileCreated;
 
@@ -396,7 +408,7 @@ public class TestServerRestart extends 
LensAllApplicationJerseyTest {
     assertEquals(result.getStatus(), Status.SUCCEEDED);
 
     // restart server
-    restartLensServer();
+    restartLensServer(getServerConf());
 
     // Check resources added again
     verifyParamOnRestart(restartTestSession);
@@ -437,4 +449,29 @@ public class TestServerRestart extends 
LensAllApplicationJerseyTest {
     assertEquals(sessionParams.getElements().size(), 1);
     
Assert.assertTrue(sessionParams.getElements().contains("lens.session.testRestartKey=myvalue"));
   }
+
+  @Test(dataProvider = "mediaTypeData")
+  public void testServerMustRestartOnManualDeletionOfAddedResources(MediaType 
mt)
+    throws IOException, LensException, LenServerTestException {
+
+    /* Begin: Setup */
+
+    /* Add a resource jar to current working directory */
+    File jarFile = new 
File(TestResourceFile.TEST_RESTART_ON_RESOURCE_MOVE_JAR.getValue());
+    FileUtils.touch(jarFile);
+
+    /* Add the created resource jar to lens server */
+    LensSessionHandle sessionHandle = LensServerTestUtil.openSession(target(), 
"foo", "bar", new LensConf(), mt);
+    LensServerTestUtil.addResource(target(), sessionHandle, "jar", 
jarFile.getPath(), mt);
+
+    /* Delete resource jar from current working directory */
+    LensServerTestFileUtils.deleteFile(jarFile);
+
+    /* End: Setup */
+
+    /* Verification Steps: server should restart without exceptions */
+    restartLensServer();
+    HiveSessionService service = 
LensServices.get().getService(SessionService.NAME);
+    service.closeSession(sessionHandle);
+  }
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java
 
b/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java
index 3e9ddb8..c72c0fb 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/query/TestDuplicateQueries.java
@@ -106,6 +106,7 @@ public class TestDuplicateQueries extends LensJerseyTest {
     try {
       MediaType mt = defaultMT;
       log.info("Restarting lens server!");
+      //restart with overridden conf
       restartLensServer(getServerConfLocal(), false);
       log.info("Restarted lens server!");
 
@@ -191,7 +192,8 @@ public class TestDuplicateQueries extends LensJerseyTest {
         }
       }
       log.info("Restarting lens server!");
-      restartLensServer(super.getServerConf(), false);
+      // restart without overwrites
+      restartLensServer();
       log.info("Restarted lens server!");
     }
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/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 8be1f89..e649a75 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
@@ -99,7 +99,8 @@ public class TestQueryConstraints extends LensJerseyTest {
 
   @BeforeClass
   public void setupTest() throws Exception {
-    restartLensServer();
+    // restart with overwritten conf
+    restartLensServer(getServerConf());
     queryService = LensServices.get().getService(QueryExecutionService.NAME);
     metricsSvc = LensServices.get().getService(MetricsService.NAME);
     Map<String, String> sessionConf = new HashMap<>();
@@ -114,6 +115,7 @@ public class TestQueryConstraints extends LensJerseyTest {
   public void afterTest() throws Exception {
     dropTable(TEST_TABLE);
     queryService.closeSession(lensSessionId);
+    // bring it back without overwritten conf
     restartLensServer();
   }
 

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/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 d723596..202e4be 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
@@ -125,12 +125,13 @@ public class TestQueryIndependenceFromSessionClose 
extends LensJerseyTest {
         assertFalse(((HiveDriver) driver).hasLensSession(lensSessionId));
       }
     }
+    // bring it back with normal configuration
+    restartLensServer();
   }
 
-  @Override
-  protected void restartLensServer() {
+  private void customRestartLensServer() {
     queryService = null;
-    super.restartLensServer();
+    super.restartLensServer(getServerConf(), false);
     queryService = LensServices.get().getService(QueryExecutionService.NAME);
   }
 
@@ -208,7 +209,7 @@ public class TestQueryIndependenceFromSessionClose extends 
LensJerseyTest {
     // Just 'marked' for closing
     
assertTrue(queryService.getSession(sesssionHandle).getLensSessionPersistInfo().isMarkedForClose());
     if (restartBeforeFinish) {
-      restartLensServer();
+      customRestartLensServer();
     }
     
assertTrue(queryService.getSession(sesssionHandle).getLensSessionPersistInfo().isMarkedForClose());
     assertTrue(queryService.getSession(sesssionHandle).isActive());
@@ -217,7 +218,7 @@ public class TestQueryIndependenceFromSessionClose extends 
LensJerseyTest {
     // Session should not be active
     assertFalse(queryService.getSession(sesssionHandle).isActive());
     if (restartAfterFinish) {
-      restartLensServer();
+      customRestartLensServer();
     }
     
assertTrue(queryService.getSession(sesssionHandle).getLensSessionPersistInfo().isMarkedForClose());
     // Now, session is not active anymore

http://git-wip-us.apache.org/repos/asf/lens/blob/fc3dc04a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
 
b/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
index 33791ea..9ebe17c 100644
--- 
a/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
+++ 
b/lens-server/src/test/java/org/apache/lens/server/session/TestSessionResource.java
@@ -381,63 +381,6 @@ public class TestSessionResource extends LensJerseyTest {
   }
 
   @Test(dataProvider = "mediaTypeData")
-  public void testServerMustRestartOnManualDeletionOfAddedResources(MediaType 
mt)
-    throws IOException, LensException, LenServerTestException {
-
-    /* Begin: Setup */
-
-    /* Add a resource jar to current working directory */
-    File jarFile = new 
File(TestResourceFile.TEST_RESTART_ON_RESOURCE_MOVE_JAR.getValue());
-    FileUtils.touch(jarFile);
-
-    /* Add the created resource jar to lens server */
-    LensSessionHandle sessionHandle = openSession("foo", "bar", new 
LensConf(), mt);
-    addResource(sessionHandle, "jar", jarFile.getPath(), mt);
-
-    /* Delete resource jar from current working directory */
-    LensServerTestFileUtils.deleteFile(jarFile);
-
-    /* End: Setup */
-
-    /* Verification Steps: server should restart without exceptions */
-    restartLensServer();
-    HiveSessionService service = 
LensServices.get().getService(SessionService.NAME);
-    service.closeSession(sessionHandle);
-  }
-
-  private LensSessionHandle openSession(final String userName, final String 
passwd, final LensConf conf, MediaType mt) {
-
-    final WebTarget target = target().path("session");
-    final FormDataMultiPart mp = new FormDataMultiPart();
-
-    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("username").build(), 
userName));
-    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("password").build(), passwd));
-    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionconf").fileName("sessionconf").build(),
-        conf, mt));
-
-    return target.request(mt).post(Entity.entity(mp, 
MediaType.MULTIPART_FORM_DATA_TYPE),
-      LensSessionHandle.class);
-
-  }
-
-  private void addResource(final LensSessionHandle lensSessionHandle, final 
String resourceType,
-    final String resourcePath, MediaType mt) {
-    final WebTarget target = target().path("session/resources");
-    final FormDataMultiPart mp = new FormDataMultiPart();
-    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), 
lensSessionHandle,
-      mt));
-    mp.bodyPart(new 
FormDataBodyPart(FormDataContentDisposition.name("type").build(), 
resourceType));
-    mp.bodyPart(
-      new FormDataBodyPart(FormDataContentDisposition.name("path").build(), 
resourcePath));
-    APIResult result = target.path("add").request(mt)
-      .put(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), 
APIResult.class);
-
-    if (!result.getStatus().equals(Status.SUCCEEDED)) {
-      throw new RuntimeException("Could not add resource:" + result);
-    }
-  }
-
-  @Test(dataProvider = "mediaTypeData")
   public void testOpenSessionWithDatabase(MediaType mt) throws Exception {
     // TEST1 - Check if call with database parameter sets current database
     // Create the test DB

Reply via email to