[ASTERIXDB-2060][TEST] Stop activity in tests with active recovery

- user model changes: no
- storage format changes: no
- interface changes: no

details:
- Hangs were caused by some test cases leaving a recovery task
  running on the listener. Because each test case has its own
  listener but the test cases share the MetadataLockManager
  a hang occurs.

Change-Id: I8dd31a7b9a82678e682d04d17760aa4b10eb80ce
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1962
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveEventsListenerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveEventsListenerTest.java
index c5465b1..97283b6 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveEventsListenerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/active/ActiveEventsListenerTest.java
@@ -47,6 +47,7 @@
 import org.apache.asterix.metadata.lock.MetadataLockManager;
 import org.apache.asterix.runtime.utils.CcApplicationContext;
 import org.apache.asterix.test.active.TestEventsListener.Behavior;
+import org.apache.asterix.test.base.TestMethodTracer;
 import org.apache.asterix.translator.IStatementExecutor;
 import org.apache.hyracks.algebricks.common.constraints.AlgebricksAbsolutePartitionConstraint;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
@@ -58,7 +59,9 @@
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TestRule;
 import org.mockito.Mockito;
 
 public class ActiveEventsListenerTest {
@@ -86,6 +89,9 @@
     static AlgebricksAbsolutePartitionConstraint locations;
     static ExecutorService executor;
 
+    @Rule
+    public TestRule watcher = new TestMethodTracer();
+
     @Before
     public void setUp() throws Exception {
         jobIdFactory = new JobIdFactory();
@@ -373,6 +379,10 @@
         ActivityState state = listener.getState();
         Assert.assertTrue(state == ActivityState.RECOVERING || state == ActivityState.TEMPORARILY_FAILED);
         Assert.assertNotNull(listener.getRecoveryTask());
+        Action stopActivity = users[1].stopActivity(listener);
+        stopActivity.sync();
+        assertSuccess(stopActivity);
+        Assert.assertEquals(ActivityState.STOPPED, listener.getState());
     }
 
     @Test
@@ -394,6 +404,10 @@
         ActivityState state = listener.getState();
         Assert.assertTrue(state == ActivityState.RECOVERING || state == ActivityState.TEMPORARILY_FAILED);
         Assert.assertNotNull(listener.getRecoveryTask());
+        Action stopActivity = users[1].stopActivity(listener);
+        stopActivity.sync();
+        assertSuccess(stopActivity);
+        Assert.assertEquals(ActivityState.STOPPED, listener.getState());
     }
 
     @Test