You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2016/04/19 19:31:51 UTC

[2/3] incubator-geode git commit: Fix some code eats exceptions. Add better Flaky comments.

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest.java
index cd54be6..9d96d9e 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest.java
@@ -31,6 +31,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.CacheClosedException;
 import com.gemstone.gemfire.cache.Region;
 import com.gemstone.gemfire.cache.execute.Execution;
@@ -54,9 +56,9 @@ import com.gemstone.gemfire.test.dunit.LogWriterUtils;
 import com.gemstone.gemfire.test.dunit.ThreadUtils;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.dunit.WaitCriterion;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
-public class PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest extends
-    PRClientServerTestBase {
+public class PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest extends PRClientServerTestBase {
   private static final String TEST_FUNCTION7 = TestFunction.TEST_FUNCTION7;
 
   private static final String TEST_FUNCTION2 = TestFunction.TEST_FUNCTION2;
@@ -225,6 +227,7 @@ public class PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest extends
    * this is the case of HA then system should retry the function execution.
    * After 5th attempt function will send Boolean as last result.
    */
+  @Category(FlakyTest.class) // GEODE-600: network sensitive, random ports, configs lots of PoolFactory network attributes
   public void testserverMultiKeyExecution_FunctionInvocationTargetException() {
     createScenario();
     client.invoke(() -> PRClientServerRegionFunctionExecutionNoSingleHopDUnitTest.serverMultiKeyExecution_FunctionInvocationTargetException());

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRFunctionExecutionTimeOutDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRFunctionExecutionTimeOutDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRFunctionExecutionTimeOutDUnitTest.java
index 2040196..fa4fd62 100755
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRFunctionExecutionTimeOutDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/execute/PRFunctionExecutionTimeOutDUnitTest.java
@@ -48,8 +48,8 @@ import com.gemstone.gemfire.test.dunit.SerializableCallable;
 import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
-public class PRFunctionExecutionTimeOutDUnitTest extends
-    PartitionedRegionDUnitTestCase {
+public class PRFunctionExecutionTimeOutDUnitTest extends PartitionedRegionDUnitTestCase {
+
   private static final String TEST_FUNCTION_TIMEOUT = TestFunction.TEST_FUNCTION_TIMEOUT;
   private static final String TEST_FUNCTION7 = TestFunction.TEST_FUNCTION7;
   
@@ -669,7 +669,7 @@ public class PRFunctionExecutionTimeOutDUnitTest extends
    * Then test it using timeout and multiple getResult.
    * @throws Exception
    */
-  @Category(FlakyTest.class) // GEODE-1020
+  @Category(FlakyTest.class) // GEODE-1020: suspect string: BucketMovedException, missing fail in expected exception, eats exceptions
   public void testLocalMultiKeyExecution_byName() throws Exception {
     IgnoredException.addIgnoredException("BucketMovedException");
     final String rName = getUniqueName();
@@ -697,11 +697,12 @@ public class PRFunctionExecutionTimeOutDUnitTest extends
         testKeysSet.add(testKey);
         try {
           dataSet.withFilter(testKeysSet).withArgs(Boolean.TRUE).execute(function.getId());
+          // TODO: expected exception pattern requires fail here
         }
         catch (Exception expected) {
           // No data should cause exec to throw
           assertTrue(expected.getMessage().contains(
-              "No target node found for KEY = " + testKey));
+              "No target node found for KEY = " + testKey)); // TODO: eats exception with new AssertionError if it doesn't match
         }
 
         final HashSet testKeys = new HashSet();
@@ -759,7 +760,7 @@ public class PRFunctionExecutionTimeOutDUnitTest extends
         }
         catch (FunctionException fe) {
           assertTrue(fe.getMessage(), fe.getMessage().contains(
-          LocalizedStrings.ExecuteFunction_RESULTS_ALREADY_COLLECTED.toLocalizedString()));
+          LocalizedStrings.ExecuteFunction_RESULTS_ALREADY_COLLECTED.toLocalizedString())); // TODO: eats exception with new AssertionError if fails
         }
         
         ResultCollector rct2 = dataSet.withFilter(testKeys).withArgs(testKeys)
@@ -771,7 +772,7 @@ public class PRFunctionExecutionTimeOutDUnitTest extends
         }
         catch (FunctionException fe) {
           assertTrue(fe.getMessage(), fe.getMessage().contains(
-          LocalizedStrings.ExecuteFunction_RESULTS_NOT_COLLECTED_IN_TIME_PROVIDED.toLocalizedString()));
+          LocalizedStrings.ExecuteFunction_RESULTS_NOT_COLLECTED_IN_TIME_PROVIDED.toLocalizedString())); // TODO: eats exception with new AssertionError if fails
         }
         
         try {
@@ -780,7 +781,7 @@ public class PRFunctionExecutionTimeOutDUnitTest extends
         }
         catch (FunctionException fe) {
           assertTrue(fe.getMessage(), fe.getMessage().contains(
-              LocalizedStrings.ExecuteFunction_RESULTS_ALREADY_COLLECTED.toLocalizedString()));
+              LocalizedStrings.ExecuteFunction_RESULTS_ALREADY_COLLECTED.toLocalizedString())); // TODO: eats exception with new AssertionError if fails
         }
         
         return Boolean.TRUE;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/ha/Bug48571DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/ha/Bug48571DUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/ha/Bug48571DUnitTest.java
index 09ed9a5..a81d9c1 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/ha/Bug48571DUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/ha/Bug48571DUnitTest.java
@@ -18,6 +18,8 @@ package com.gemstone.gemfire.internal.cache.ha;
 
 import java.util.Properties;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.AttributesFactory;
 import com.gemstone.gemfire.cache.CacheFactory;
 import com.gemstone.gemfire.cache.EntryEvent;
@@ -45,6 +47,7 @@ import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.dunit.WaitCriterion;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class Bug48571DUnitTest extends DistributedTestCase {
 
@@ -87,6 +90,7 @@ public class Bug48571DUnitTest extends DistributedTestCase {
     }
   }
 
+  @Category(FlakyTest.class) // GEODE-510: random ports, async actions, AsyncInvocation orphan
   public void testStatsMatchWithSize() throws Exception {
     IgnoredException.addIgnoredException("Unexpected IOException||Connection reset");
     // start a server
@@ -98,7 +102,7 @@ public class Bug48571DUnitTest extends DistributedTestCase {
     // close durable client
     client.invoke(() -> Bug48571DUnitTest.closeClientCache());
     // resume puts on server, add another 100.
-    server.invokeAsync(() -> Bug48571DUnitTest.resumePuts());
+    server.invokeAsync(() -> Bug48571DUnitTest.resumePuts()); // TODO: join or await result
     // start durable client
     client.invoke(() -> Bug48571DUnitTest.createClientCache(client.getHost(), port));
     // wait for full queue dispatch

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java
index 02728db..b7919b1 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentColocatedPartitionedRegionDUnitTest.java
@@ -56,17 +56,11 @@ import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.dunit.WaitCriterion;
 import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
-/**
- *
- */
 public class PersistentColocatedPartitionedRegionDUnitTest extends PersistentPartitionedRegionTestBase {
 
   private static final int NUM_BUCKETS = 15;
   private static final int MAX_WAIT = 30 * 1000;
 
-  /**
-   * @param name
-   */
   public PersistentColocatedPartitionedRegionDUnitTest(String name) {
     super(name);
   }
@@ -1185,7 +1179,8 @@ public class PersistentColocatedPartitionedRegionDUnitTest extends PersistentPar
     //make sure we didn't get an exception
     async0.getResult(MAX_WAIT);
   }
-  
+
+  @Category(FlakyTest.class) // GEODE-506: time sensitive, async actions with 30 sec max
   public void testRebalanceWithOfflineChildRegion() throws Throwable {
     SerializableRunnable createParentPR = new SerializableRunnable() {
       public void run() {
@@ -1411,7 +1406,7 @@ public class PersistentColocatedPartitionedRegionDUnitTest extends PersistentPar
    * a PR with persistent data.
    * @throws Throwable
    */
-  @Category(FlakyTest.class) // GEODE-900
+  @Category(FlakyTest.class) // GEODE-900: disk dependency, filesystem sensitive
   public void testModifyColocation() throws Throwable {
     //Create PRs where region3 is colocated with region1.
     createColocatedPRs("region1");

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionDUnitTest.java
index 65f1314..b8c5ba1 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionDUnitTest.java
@@ -443,7 +443,7 @@ public class PersistentPartitionedRegionDUnitTest extends PersistentPartitionedR
     ex.remove();
   }
 
-  @Category(FlakyTest.class) // GEODE-974
+  @Category(FlakyTest.class) // GEODE-974: async actions, time sensitive, 65 second timeouts
   public void testRevokeBeforeStartup() throws Throwable {
     IgnoredException.addIgnoredException("RevokeFailedException");
     Host host = Host.getHost(0);
@@ -1072,11 +1072,12 @@ public class PersistentPartitionedRegionDUnitTest extends PersistentPartitionedR
     
     
   
-  /** Test the with redundancy
+  /**
+   * Test the with redundancy
    * 1, we restore the same buckets when the
    * missing member comes back online.
    */
-  @Category(FlakyTest.class) // GEODE-1047
+  @Category(FlakyTest.class) // GEODE-1047: thread unsafe test hook, CountDownLatch, async behavior
   public void testMissingMemberRedundancy1() {
     Host host = Host.getHost(0);
     VM vm0 = host.getVM(0);
@@ -1631,7 +1632,7 @@ public class PersistentPartitionedRegionDUnitTest extends PersistentPartitionedR
    * 5. Member A recovers, and gets stuck waiting for member B.
    * @throws Throwable 
    */
-  @Category(FlakyTest.class) // GEODE-1208
+  @Category(FlakyTest.class) // GEODE-1208: time sensitive, multiple non-thread-safe test hooks, async actions
   public void testBug42226() throws Exception {
     Host host = Host.getHost(0);
     VM vm0 = host.getVM(0);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionOldConfigDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionOldConfigDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionOldConfigDUnitTest.java
index 3912b90..c37ac69 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionOldConfigDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/PersistentPartitionedRegionOldConfigDUnitTest.java
@@ -22,11 +22,7 @@ import com.gemstone.gemfire.cache.DataPolicy;
 import com.gemstone.gemfire.cache.PartitionAttributesFactory;
 import com.gemstone.gemfire.cache.RegionAttributes;
 
-/**
- *
- */
-public class PersistentPartitionedRegionOldConfigDUnitTest extends
-    PersistentPartitionedRegionDUnitTest {
+public class PersistentPartitionedRegionOldConfigDUnitTest extends PersistentPartitionedRegionDUnitTest {
 
   public PersistentPartitionedRegionOldConfigDUnitTest(String name) {
     super(name);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/fixed/FixedPartitioningDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/fixed/FixedPartitioningDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/fixed/FixedPartitioningDUnitTest.java
index e64759f..3fcd791 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/fixed/FixedPartitioningDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/partitioned/fixed/FixedPartitioningDUnitTest.java
@@ -19,6 +19,8 @@ package com.gemstone.gemfire.internal.cache.partitioned.fixed;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.DuplicatePrimaryPartitionException;
 import com.gemstone.gemfire.cache.EntryNotFoundException;
 import com.gemstone.gemfire.cache.FixedPartitionAttributes;
@@ -28,14 +30,12 @@ import com.gemstone.gemfire.test.dunit.AsyncInvocation;
 import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.dunit.Host;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 /**
  * This Dunit test class have multiple tests to tests different validations of
  * static partitioning
- * 
- * 
  */
-
 public class FixedPartitioningDUnitTest extends FixedPartitioningTestBase {
 
   public FixedPartitioningDUnitTest(String name) {
@@ -453,7 +453,7 @@ public class FixedPartitioningDUnitTest extends FixedPartitioningTestBase {
     
   }
 
-  
+  @Category(FlakyTest.class) // GEODE-567: async actions, waitForCriterion, time sensitive, non-thread-safe test hook, eats exceptions (partially fixed)
   public void testBug43283() {
     member1.invoke(() -> FixedPartitioningTestBase.createCacheOnMember());
     member2.invoke(() -> FixedPartitioningTestBase.createCacheOnMember());
@@ -501,7 +501,7 @@ public class FixedPartitioningDUnitTest extends FixedPartitioningTestBase {
       catch (Exception e) {
         e.printStackTrace();
         if (!(e.getCause() instanceof PartitionNotAvailableException)) {
-          fail("exception thrown is not PartitionNotAvailableException");
+          Assert.fail("exception thrown is not PartitionNotAvailableException", e);
         }
       }
       try {
@@ -511,7 +511,7 @@ public class FixedPartitioningDUnitTest extends FixedPartitioningTestBase {
       }
       catch (InterruptedException e) {
         e.printStackTrace();
-        fail("Unexpected Exception");
+        Assert.fail("Unexpected Exception", e);
       }
     } finally {
       member1.invoke(() -> FixedPartitioningTestBase.resetPRObserverBeforeCalculateStartingBucketId());

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DestroyEntryPropagationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DestroyEntryPropagationDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DestroyEntryPropagationDUnitTest.java
index 63d3099..38fcdd3 100755
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DestroyEntryPropagationDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DestroyEntryPropagationDUnitTest.java
@@ -175,7 +175,7 @@ public class DestroyEntryPropagationDUnitTest extends DistributedTestCase {
    * are situation of Interest List fail over
    *
    */
-  @Category(FlakyTest.class) // GEODE-897: time sensitive
+  @Category(FlakyTest.class) // GEODE-897: random port, time sensitive, waitForCriterion, 2 minute timeouts, eats exception (1 fixed)
   public void testVerifyDestroyNotReceivedBySender() {
     final int maxWaitTime = Integer.getInteger(WAIT_PROPERTY, WAIT_DEFAULT).intValue();
     //First create entries on both servers via the two client
@@ -292,7 +292,7 @@ public class DestroyEntryPropagationDUnitTest extends DistributedTestCase {
       }
     }
     catch (Exception ex) {
-      fail("while killing Server  " + ex);
+      Assert.fail("while killing Server", ex);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
index d2e47ea..693ead4 100755
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/HAStartupAndFailoverDUnitTest.java
@@ -53,11 +53,8 @@ import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 /**
  * Test to verify Startup. and failover during startup.
- *
- *
  */
-public class HAStartupAndFailoverDUnitTest extends DistributedTestCase
-{
+public class HAStartupAndFailoverDUnitTest extends DistributedTestCase {
   protected static Cache cache = null;
   VM server1 = null;
   VM server2 = null;
@@ -207,9 +204,8 @@ public class HAStartupAndFailoverDUnitTest extends DistributedTestCase
     /**
      * verify that Primary Should Be Null And EPList Should Be Empty When All Servers Are Dead
      */
-    @Category(FlakyTest.class) // GEODE-1045
-    public void testPrimaryShouldBeNullAndEPListShouldBeEmptyWhenAllServersAreDead() throws Exception
-    {
+    @Category(FlakyTest.class) // GEODE-1045: random ports, time senstive, waitForCriterion
+    public void testPrimaryShouldBeNullAndEPListShouldBeEmptyWhenAllServersAreDead() throws Exception {
       createClientCache(this.getName(), NetworkUtils.getServerHostName(server1.getHost()));
       verifyPrimaryShouldNotBeNullAndEPListShouldNotBeEmpty();
       server1.invoke(() -> HAStartupAndFailoverDUnitTest.stopServer());
@@ -218,6 +214,7 @@ public class HAStartupAndFailoverDUnitTest extends DistributedTestCase
       verifyDeadAndLiveServers(3,0);
       verifyPrimaryShouldBeNullAndEPListShouldBeEmpty();
     }
+
     /**
      * Tests failover initialization by cacheClientUpdater Thread
      * on failure in Primary Server
@@ -292,9 +289,8 @@ public class HAStartupAndFailoverDUnitTest extends DistributedTestCase
     /**
      * Tests failover initialization by cache operation Threads on secondary
      */
-    public void testInitiateFailoverByCacheOperationThreads_Secondary() throws Exception
-    {
-
+    @Category(FlakyTest.class) // GEODE-357: random ports, eats exceptions (fixed 1), time sensitive, waitForCriterions
+    public void testInitiateFailoverByCacheOperationThreads_Secondary() throws Exception {
       // create a client with large retry interval for server monitors and no client updater thread
       // so that only cache operation can detect a server failure and should initiate failover
       createClientCacheWithLargeRetryIntervalAndWithoutCallbackConnection(this.getName()
@@ -381,7 +377,7 @@ public class HAStartupAndFailoverDUnitTest extends DistributedTestCase
       bs.stop();
     }
     catch (Exception ex) {
-      fail("while setting stopServer  " + ex);
+      Assert.fail("while setting stopServer", ex);
     }
   }
 
@@ -409,6 +405,7 @@ public class HAStartupAndFailoverDUnitTest extends DistributedTestCase
       try{
         assertNull("Primary endpoint should be null as all server are dead", pool.getPrimaryName());
         assertEquals("Endpoint List should be Empty as all server are dead", 0, pool.getConnectedServerCount());
+        fail("NoSubscriptionServersAvailableException is expected"); // TODO:KIRK: added this line
       } catch (NoSubscriptionServersAvailableException e) {
         // pass
       } catch(Exception e){

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
index ab673a6..69781c4 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/UpdatePropagationDUnitTest.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Properties;
 
 import org.junit.Ignore;
+import org.junit.experimental.categories.Category;
 
 import com.gemstone.gemfire.cache.AttributesFactory;
 import com.gemstone.gemfire.cache.Cache;
@@ -52,9 +53,9 @@ import com.gemstone.gemfire.test.dunit.NetworkUtils;
 import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.dunit.WaitCriterion;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 /**
- *
  * Start client 1
  * Start client 2
  * Start Server 1
@@ -69,13 +70,8 @@ import com.gemstone.gemfire.test.dunit.WaitCriterion;
  *
  * The key is to verify that the memberid being used by the client
  * to register with the server is the same across servers
- *
- *
- *
  */
-
-public class UpdatePropagationDUnitTest extends DistributedTestCase
-{
+public class UpdatePropagationDUnitTest extends DistributedTestCase {
 
   VM server1 = null;
 
@@ -253,10 +249,9 @@ public class UpdatePropagationDUnitTest extends DistributedTestCase
   /**
    * This tests whether the updates are received by other clients or not , if there are
    * situation of Interest List fail over
-   *
    */
-  public void testVerifyUpdatesReceivedByOtherClients()
-  {
+  @Category(FlakyTest.class) // GEODE-430: time sensitive, random ports, port reuse, thread sleeps (5 seconds), eats exceptions (fixed 1), async actions, waitForCriterion
+  public void testVerifyUpdatesReceivedByOtherClients() {
     final int maxWaitTime = Integer.getInteger(WAIT_PROPERTY, WAIT_DEFAULT).intValue();
     //  First create entries on both servers via the two client
     client1.invoke(() -> createEntriesK1andK2());
@@ -390,7 +385,7 @@ public class UpdatePropagationDUnitTest extends DistributedTestCase
       srp.putOnForTestsOnly(conn, "key2", "server-value2", new EventID(new byte[] {1},159632,2), null);
     }
     catch (Exception ex) {
-      fail("while setting acquireConnections  " + ex);
+      Assert.fail("while setting acquireConnections", ex);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java
index 3b7b959..cec93fa 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/internal/cache/wan/asyncqueue/AsyncEventListenerDUnitTest.java
@@ -1391,7 +1391,7 @@ public class AsyncEventListenerDUnitTest extends AsyncEventQueueTestBase {
    * killed and subsequently vm6 is brought up. Buckets are now rebalanced
    * between vm4 & vm6.
    */
-  @Category(FlakyTest.class) // GEODE-713: random ports, thread sleeps, async actions
+  @Category(FlakyTest.class) // GEODE-688 & GEODE-713: random ports, thread sleeps, async actions
   public void testParallelAsyncEventQueueHA_Scenario2() {
     Integer lnPort = (Integer)vm0.invoke(() -> AsyncEventQueueTestBase.createFirstLocatorWithDSId( 1 ));
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/DLockManagementDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/DLockManagementDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/DLockManagementDUnitTest.java
index 5da954f..29a3a85 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/DLockManagementDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/DLockManagementDUnitTest.java
@@ -21,6 +21,8 @@ import java.util.Set;
 
 import javax.management.ObjectName;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.distributed.DistributedLockService;
 import com.gemstone.gemfire.distributed.DistributedMember;
 import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
@@ -29,17 +31,18 @@ import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedM
 import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
 import com.gemstone.gemfire.management.internal.MBeanJMXAdapter;
 import com.gemstone.gemfire.management.internal.SystemManagementService;
+import com.gemstone.gemfire.test.dunit.Assert;
 import com.gemstone.gemfire.test.dunit.LogWriterUtils;
 import com.gemstone.gemfire.test.dunit.SerializableRunnable;
 import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.dunit.WaitCriterion;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class DLockManagementDUnitTest extends ManagementTestBase {
 
   private static final long serialVersionUID = 1L;
 
-
   private static final String LOCK_SERVICE_NAME = "testLockService";
   
   // This must be bigger than the dunit ack-wait-threshold for the revoke
@@ -47,7 +50,6 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
   // 60 seconds.
   private static final int MAX_WAIT = 70 * 1000;
 
- 
   public DLockManagementDUnitTest(String name) {
     super(name);
 
@@ -58,7 +60,7 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
    * 
    * @throws Exception
    */
-
+  @Category(FlakyTest.class) // GEODE-173: eats exceptions, HeadlessGFSH, time sensitive, waitForCriterions
   public void testDLockMBean() throws Throwable {
     
     initManagement(false);
@@ -90,7 +92,7 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
    * 
    * @throws Exception
    */
-
+  @Category(FlakyTest.class) // GEODE-553: waitForCriterion, eats exceptions, HeadlessGFSH
   public void testDLockAggregate() throws Throwable {
     initManagement(false);
     VM[] managedNodes = new VM[getManagedNodeList()
@@ -156,7 +158,7 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
             }, MAX_WAIT, 500, true);
 
           } catch (Exception e) {
-            fail("could not remove proxies in required time");
+            throw new AssertionError("could not remove proxies in required time", e);
 
           }
           assertNull(bean);
@@ -360,7 +362,7 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
             bean = MBeanUtil.getLockServiceMbeanProxy(member, LOCK_SERVICE_NAME);
           } catch (Exception e) {
             InternalDistributedSystem.getLoggerI18n().fine(
-                "Undesired Result , LockServiceMBean Should not be null" + e);
+                "Undesired Result , LockServiceMBean Should not be null", e);
 
           }
           assertNotNull(bean);
@@ -394,7 +396,7 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
               .fetchDistributedLockServiceObjectName(LOCK_SERVICE_NAME);
           assertEquals(expected, actual);
         } catch (Exception e) {
-          fail("Lock Service Navigation Failed " + e);
+          throw new AssertionError("Lock Service Navigation Failed ", e);
         }
 
         try {
@@ -404,7 +406,7 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
               lockServiceMember.getId(), LOCK_SERVICE_NAME);
           assertEquals(expected, actual);
         } catch (Exception e) {
-          fail("Lock Service Navigation Failed " + e);
+          throw new AssertionError("Lock Service Navigation Failed ", e);
         }
 
       }
@@ -444,7 +446,7 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
             }, MAX_WAIT, 500, true);
 
           } catch (Exception e) {
-            fail("could not remove Aggregate Bean in required time");
+            throw new AssertionError("could not remove Aggregate Bean in required time", e);
 
           }
           return;
@@ -455,7 +457,7 @@ public class DLockManagementDUnitTest extends ManagementTestBase {
             bean = MBeanUtil.getDistributedLockMbean(LOCK_SERVICE_NAME, expectedMembers);
           } catch (Exception e) {
             InternalDistributedSystem.getLoggerI18n().fine(
-                "Undesired Result , LockServiceMBean Should not be null" + e);
+                "Undesired Result , LockServiceMBean Should not be null", e);
 
           }
           assertNotNull(bean);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/UniversalMembershipListenerAdapterDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/UniversalMembershipListenerAdapterDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/UniversalMembershipListenerAdapterDUnitTest.java
index cf0e5b1..be73adc 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/UniversalMembershipListenerAdapterDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/UniversalMembershipListenerAdapterDUnitTest.java
@@ -701,7 +701,7 @@ public class UniversalMembershipListenerAdapterDUnitTest extends ClientServerTes
   /**
    * Tests notification of events for loner bridge clients in server process.
    */
-  @Category(FlakyTest.class) // GEODE-1174
+  @Category(FlakyTest.class) // GEODE-1174: random port, async behavior, condition await loops
   public void testSystemClientEventsInServer() throws Exception {
      try {
        doTestSystemClientEventsInServer();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java
index 6a761b4..4d651a2 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CliCommandTestBase.java
@@ -268,9 +268,9 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
       info("Started testable shell: " + shell);
       return shell;
     } catch (ClassNotFoundException e) {
-      throw new AssertionError(getStackTrace(e));
+      throw new AssertionError(e);
     } catch (IOException e) {
-      throw new AssertionError(getStackTrace(e));
+      throw new AssertionError(e);
     }
   }
 
@@ -333,9 +333,9 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
     try {
       info("Executing command " + command + " with command Mgr " + CommandManager.getInstance());
     } catch (ClassNotFoundException cnfex) {
-      throw new AssertionError(getStackTrace(cnfex));
+      throw new AssertionError(cnfex);
     } catch (IOException ioex) {
-      throw new AssertionError(getStackTrace(ioex));
+      throw new AssertionError(ioex);
     }
 
     shell.executeCommand(command);
@@ -528,12 +528,6 @@ public abstract class CliCommandTestBase extends JUnit4CacheTestCase {
     return stringToSearch.substring(startIndex, endIndex);
   }
 
-  protected static String getStackTrace(Throwable aThrowable) {
-    StringWriter sw = new StringWriter();
-    aThrowable.printStackTrace(new PrintWriter(sw, true));
-    return sw.toString();
-  }
-
   protected void info(String string) {
     getLogWriter().info(string);
   }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
index 257771f..92ed262 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/CreateAlterDestroyRegionCommandsDUnitTest.java
@@ -355,7 +355,7 @@ public class CreateAlterDestroyRegionCommandsDUnitTest extends CliCommandTestBas
     };
   }
 
-  @Category(FlakyTest.class) // GEODE-973: getRandomAvailablePort, BindException
+  @Category(FlakyTest.class) // GEODE-973: random ports, BindException, java.rmi.server.ExportException: Port already in use
   @Test
   public void testCreateRegion46391() throws IOException {
     createDefaultSetup(null); // GEODE-973: getRandomAvailablePort

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
index 38b8736..7a9186d 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/DiskStoreCommandsDUnitTest.java
@@ -832,7 +832,7 @@ public class DiskStoreCommandsDUnitTest extends CliCommandTestBase {
     assertEquals(true, resultAsString.contains(vm1Name));
   }
 
-  @Category(FlakyTest.class) // GEODE-1206: port already in use
+  @Category(FlakyTest.class) // GEODE-1206: random ports, BindException
   @Test
   public void testCreateDiskStore() {
     final String diskStore1Name = "testCreateDiskStore1";

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
index 6019213..6858f78 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/GemfireDataCommandsDUnitTest.java
@@ -1213,7 +1213,7 @@ public class GemfireDataCommandsDUnitTest extends CliCommandTestBase {
     vm2.invoke(checkPutKeysInVM2);
   }
 
-  @Category(FlakyTest.class) // GEODE-1182: BindException
+  @Category(FlakyTest.class) // GEODE-1182: random ports, BindException, HeadlessGFSH, waitForCriterion, time sensitive
   @Test
   public void testGetLocateEntryJsonKeys() {
     final String keyPrefix = "testKey";

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/IndexCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/IndexCommandsDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/IndexCommandsDUnitTest.java
index 69204fd..12c5249 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/IndexCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/IndexCommandsDUnitTest.java
@@ -230,7 +230,7 @@ public class IndexCommandsDUnitTest extends CliCommandTestBase {
     assertTrue(resultAsString.contains(indexName));
   }
 
-  @Category(FlakyTest.class) // GEODE-1048
+  @Category(FlakyTest.class) // GEODE-1048: HeadlessGFSH, random ports
   @Test
   public void testCreateMultipleIndexes() {
     setupSystem();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeRegionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeRegionDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeRegionDUnitTest.java
index 2bcc15f..ff84036 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeRegionDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ListAndDescribeRegionDUnitTest.java
@@ -287,7 +287,7 @@ public class ListAndDescribeRegionDUnitTest extends CliCommandTestBase {
    * Asserts that a describe region command issued on a region with compression returns the correct non default region
    * attribute for compression and the correct codec value.
    */
-  @Category(FlakyTest.class) // GEODE-1033
+  @Category(FlakyTest.class) // GEODE-1033: HeadlesssGFSH, random port, Snappy dependency
   @Test
   public void testDescribeRegionWithCompressionCodec() {
     final String regionName = "compressedRegion";

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsDUnitTest.java
index 250b6df..848c1ba 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsDUnitTest.java
@@ -78,7 +78,7 @@ public class MiscellaneousCommandsDUnitTest extends CliCommandTestBase {
     });
   }
 
-  @Category(FlakyTest.class) // GEODE-1034
+  @Category(FlakyTest.class) // GEODE-1034: random ports, GC sensitive, memory sensitive, HeadlessGFSH
   @Test
   public void testGCForGroup() {
     Properties localProps = new Properties();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsExportLogsPart3DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsExportLogsPart3DUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsExportLogsPart3DUnitTest.java
index 5c159e8..626dbe1 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsExportLogsPart3DUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/MiscellaneousCommandsExportLogsPart3DUnitTest.java
@@ -41,6 +41,7 @@ import com.gemstone.gemfire.test.dunit.Host;
 import com.gemstone.gemfire.test.dunit.SerializableRunnable;
 import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 /**
  * Dunit class for testing gemfire function commands : export logs
@@ -80,6 +81,7 @@ public class MiscellaneousCommandsExportLogsPart3DUnitTest extends CliCommandTes
     return ("_" + formattedStartDate);
   }
 
+  @Category(FlakyTest.class) // GEODE-672: random ports, java.rmi.server.ExportException: Port already in use, HeadlessGfsh, disk IO
   @Test
   public void testExportLogsForGroup() throws IOException {
     Properties localProps = new Properties();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java
index 777bb70..6ee11e6 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ShellCommandsDUnitTest.java
@@ -55,7 +55,7 @@ public class ShellCommandsDUnitTest extends CliCommandTestBase {
         "localhost[" + locatorPort + "]").toString());
   }
 
-  @Category(FlakyTest.class) // GEODE-989: random ports BindException
+  @Category(FlakyTest.class) // GEODE-989: random ports, suspect string: DiskAccessException, disk pollution, HeadlessGfsh, time sensitive
   @Test
   public void testConnectToLocatorBecomesManager() {
     final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationUsingDirDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationUsingDirDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationUsingDirDUnitTest.java
index d117e0b..70f3e70 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationUsingDirDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationUsingDirDUnitTest.java
@@ -112,7 +112,7 @@ public class SharedConfigurationUsingDirDUnitTest extends JUnit4CacheTestCase {
     }
   }
 
-  @Category(FlakyTest.class) // GEODE-1165: BindException
+  @Category(FlakyTest.class) // GEODE-1165: random ports, BindException, time sensitive, awaitility
   @Test
   public void updateClusterConfigDirWithTwoLocatorsNoRollingServerRestart() throws Exception {
     final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/memcached/GemcachedDevelopmentJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/memcached/GemcachedDevelopmentJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/memcached/GemcachedDevelopmentJUnitTest.java
index fd6fefa..71bc653 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/memcached/GemcachedDevelopmentJUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/memcached/GemcachedDevelopmentJUnitTest.java
@@ -157,7 +157,7 @@ public class GemcachedDevelopmentJUnitTest {
     assertNull(client.get("key1"));
   }
 
-  @Category(FlakyTest.class) // GEODE-1140: time sensitive with sleep
+  @Category(FlakyTest.class) // GEODE-1140: time sensitive, thread sleep
   @Test
   public void testExpiration() throws Exception {
     MemcachedClient client = bootstrapClient();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/pdx/DistributedSystemIdDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/pdx/DistributedSystemIdDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/pdx/DistributedSystemIdDUnitTest.java
index 3ea5a4e..011aa4f 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/pdx/DistributedSystemIdDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/pdx/DistributedSystemIdDUnitTest.java
@@ -16,10 +16,10 @@
  */
 package com.gemstone.gemfire.pdx;
 
-import java.io.File;
 import java.util.Properties;
 
-import com.gemstone.gemfire.distributed.Locator;
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.distributed.internal.DistributionConfig;
 import com.gemstone.gemfire.distributed.internal.DistributionManager;
 import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
@@ -29,10 +29,8 @@ import com.gemstone.gemfire.test.dunit.Host;
 import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.SerializableCallable;
 import com.gemstone.gemfire.test.dunit.VM;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
-/**
- *
- */
 public class DistributedSystemIdDUnitTest extends DistributedTestCase {
   
   public DistributedSystemIdDUnitTest(String name) {
@@ -55,9 +53,8 @@ public class DistributedSystemIdDUnitTest extends DistributedTestCase {
     
   }
   
-  
-
-  public void testInfectousId() {
+  @Category(FlakyTest.class) // GEODE-558: random ports, test pollution (TODO: disconnect DS in setup?)
+  public void testInfectiousId() {
     Host host = Host.getHost(0);
     VM vm0 = host.getVM(0);
     VM vm1 = host.getVM(1);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/redis/RedisDistDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/redis/RedisDistDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/redis/RedisDistDUnitTest.java
index f7927e4..23f202d 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/redis/RedisDistDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/redis/RedisDistDUnitTest.java
@@ -107,7 +107,7 @@ public class RedisDistDUnitTest extends DistributedTestCase {
     disconnectAllFromDS();
   }
 
-  @Category(FlakyTest.class) // GEODE-1092
+  @Category(FlakyTest.class) // GEODE-1092: random ports, failure stack involves TCPTransport ConnectionHandler (are we eating BindExceptions somewhere?), uses Random, async actions
   public void testConcListOps() throws Throwable {
     final Jedis jedis1 = new Jedis(localHost, server1Port, JEDIS_TIMEOUT);
     final Jedis jedis2 = new Jedis(localHost, server2Port, JEDIS_TIMEOUT);
@@ -142,7 +142,7 @@ public class RedisDistDUnitTest extends DistributedTestCase {
     assertEquals(result1, result2);
   }
 
-  @Category(FlakyTest.class) // GEODE-717: random ports
+  @Category(FlakyTest.class) // GEODE-717: random ports, BindException in failure stack, async actions
   public void testConcCreateDestroy() throws Throwable {
     IgnoredException.addIgnoredException("RegionDestroyedException");
     IgnoredException.addIgnoredException("IndexInvalidException");

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/security/ClientAuthenticationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/security/ClientAuthenticationDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/security/ClientAuthenticationDUnitTest.java
index aba4427..5d6eeac 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/security/ClientAuthenticationDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/security/ClientAuthenticationDUnitTest.java
@@ -76,7 +76,7 @@ public class ClientAuthenticationDUnitTest extends ClientAuthenticationTestCase
     doTestCredentialsWithFailover(false);
   }
 
-  @Category(FlakyTest.class) // GEODE-838: random ports, pause sleep, time sensitive
+  @Category(FlakyTest.class) // GEODE-838: random ports, thread sleeps, time sensitive
   @Test
   public void testCredentialsForNotifications() throws Exception {
     doTestCredentialsForNotifications(false);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-core/src/test/java/com/gemstone/gemfire/security/P2PAuthenticationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/security/P2PAuthenticationDUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/security/P2PAuthenticationDUnitTest.java
index 5531c6a..56f5186 100644
--- a/geode-core/src/test/java/com/gemstone/gemfire/security/P2PAuthenticationDUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/security/P2PAuthenticationDUnitTest.java
@@ -177,7 +177,7 @@ public class P2PAuthenticationDUnitTest extends JUnit4DistributedTestCase {
   /**
    * Authenticator is incorrect
    */
-  @Category(FlakyTest.class) // GEODE-1089: getRandomAvailablePort
+  @Category(FlakyTest.class) // GEODE-1089: random port
   @Test
   public void testP2PAuthenticationWithInvalidAuthenticator() throws Exception {
     int locatorPort = getRandomAvailablePort(SOCKET);
@@ -206,7 +206,7 @@ public class P2PAuthenticationDUnitTest extends JUnit4DistributedTestCase {
     }
   }
 
-  @Category(FlakyTest.class) // GEODE-1091: getRandomAvailablePort
+  @Category(FlakyTest.class) // GEODE-1091: random port
   @Test
   public void testP2PAuthenticationWithNoCredentials() throws Exception {
     int locatorPort = getRandomAvailablePort(SOCKET);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfDUnitTest.java
index b91e710..fe8e23e 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfDUnitTest.java
@@ -50,7 +50,6 @@ import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 /**
  * This class tests the ContiunousQuery mechanism in GemFire.
  * This includes the test with diffetent data activities.
- *
  */
 public class CqPerfDUnitTest extends CacheTestCase {
 
@@ -402,7 +401,7 @@ public class CqPerfDUnitTest extends CacheTestCase {
    * To test the changes relating to, executing CQ only once for all similar CQs.
    * @throws Exception
    */
-  @Category(FlakyTest.class) // GEODE-1164
+  @Category(FlakyTest.class) // GEODE-1164: random ports, thread sleeps, time sensitive, eats exceptions (fixed 1), async behavior
   public void testMatchingCqs() throws Exception {
     
     final Host host = Host.getHost(0);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfUsingPoolDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfUsingPoolDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfUsingPoolDUnitTest.java
index 9faec8a..130f924 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfUsingPoolDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqPerfUsingPoolDUnitTest.java
@@ -401,7 +401,7 @@ public class CqPerfUsingPoolDUnitTest extends CacheTestCase {
    * To test the changes relating to, executing CQ only once for all similar CQs.
    * @throws Exception
    */
-  @Category(FlakyTest.class) // GEODE-988
+  @Category(FlakyTest.class) // GEODE-988: random ports, time sensitive, waitForCriterion, 20 second timeouts
   public void testMatchingCqs() throws Exception {
     
     final Host host = Host.getHost(0);
@@ -409,7 +409,7 @@ public class CqPerfUsingPoolDUnitTest extends CacheTestCase {
     VM client = host.getVM(1);
     
     cqDUnitTest.createServer(server);
-    final int port = server.invoke(() -> CqQueryUsingPoolDUnitTest.getCacheServerPort());
+    final int port = server.invoke(() -> CqQueryUsingPoolDUnitTest.getCacheServerPort()); // TODO: move static methods from other dunit into util class
     final String host0 = NetworkUtils.getServerHostName(server.getHost());
     //cqDUnitTest.createClient(client, port, host0);
     

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryDUnitTest.java
index 608c20c..4e0ec90 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryDUnitTest.java
@@ -1347,7 +1347,7 @@ public class CqQueryDUnitTest extends CacheTestCase {
           cqService = getCache().getQueryService();
         } catch (Exception cqe) {
           cqe.printStackTrace();
-          fail("Failed to getCQService.");
+          Assert.fail("Failed to getCQService.", cqe);
         }
         
         CqQuery cQuery = cqService.getCq(cqName);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryUsingPoolDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryUsingPoolDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryUsingPoolDUnitTest.java
index cd2c12a..4ba5e48 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryUsingPoolDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/CqQueryUsingPoolDUnitTest.java
@@ -500,10 +500,8 @@ public class CqQueryUsingPoolDUnitTest extends CacheTestCase {
           CqQuery cq1 = qService.newCq(cqName, queryStr, cqa);
           assertTrue("newCq() state mismatch", cq1.getState().isStopped());
         } catch (Exception ex){
-          AssertionError err = new AssertionError("Failed to create CQ " + cqName + " . ");
-          err.initCause(ex);
-          LogWriterUtils.getLogWriter().info("QueryService is :" + qService, err);
-          throw err;
+          LogWriterUtils.getLogWriter().info("QueryService is :" + qService, ex);
+          Assert.fail("Failed to create CQ " + cqName + " . ", ex);
         }
       }
     });   
@@ -538,10 +536,8 @@ public class CqQueryUsingPoolDUnitTest extends CacheTestCase {
           CqQuery cq1 = qService.newCq(cqName, queryStr, cqa);
           assertTrue("newCq() state mismatch", cq1.getState().isStopped());
         } catch (Exception ex){
-          AssertionError err = new AssertionError("Failed to create CQ " + cqName + " . ");
-          err.initCause(ex);
-          LogWriterUtils.getLogWriter().info("QueryService is :" + qService, err);
-          throw err;
+          LogWriterUtils.getLogWriter().info("QueryService is :" + qService, ex);
+          Assert.fail("Failed to create CQ " + cqName + " . ", ex);
         }
       }
     });   
@@ -679,9 +675,7 @@ public class CqQueryUsingPoolDUnitTest extends CacheTestCase {
       } catch (Exception ex){
         LogWriterUtils.getLogWriter().info("CqService is :" + cqService);
         LogWriterUtils.getLogWriter().error(ex);
-        AssertionError err = new AssertionError("Failed to execute  CQ " + cqName);
-        err.initCause(ex);
-        throw err;
+        Assert.fail("Failed to execute  CQ " + cqName, ex);
       }
       
       if (initialResults) {
@@ -723,12 +717,10 @@ public class CqQueryUsingPoolDUnitTest extends CacheTestCase {
         try {
           cq1.execute();
         } catch (Exception ex){
-          AssertionError err = new AssertionError("Failed to execute  CQ " + cqName);
-          err.initCause(ex);
           if (expectedErr == null) {
-            LogWriterUtils.getLogWriter().info("CqService is :" + cqService, err);
+            LogWriterUtils.getLogWriter().info("CqService is :" + cqService, ex);
           }
-          throw err;
+          Assert.fail("Failed to execute  CQ " + cqName, ex);
         }
         assertTrue("execute() state mismatch", cq1.getState().isRunning());
       }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/PrCqUsingPoolDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/PrCqUsingPoolDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/PrCqUsingPoolDUnitTest.java
index be4b970..ee8ea9f 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/PrCqUsingPoolDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/cq/dunit/PrCqUsingPoolDUnitTest.java
@@ -60,7 +60,6 @@ import com.gemstone.gemfire.test.junit.categories.FlakyTest;
  */
 public class PrCqUsingPoolDUnitTest extends CacheTestCase {
 
-  
   public PrCqUsingPoolDUnitTest(String name) {
     super(name);
   }
@@ -1193,7 +1192,7 @@ public class PrCqUsingPoolDUnitTest extends CacheTestCase {
    * thus making the query data and region data inconsistent.
    * @throws Exception
    */
-  @Category(FlakyTest.class) // GEODE-1181
+  @Category(FlakyTest.class) // GEODE-1181: random ports, eats exceptions (fixed some), async behavior
   public void testEventsDuringQueryExecution() throws Exception {
     final Host host = Host.getHost(0);
     VM server1 = host.getVM(0);
@@ -1255,9 +1254,7 @@ public class PrCqUsingPoolDUnitTest extends CacheTestCase {
         try {
           cqResults = cq1.executeWithInitialResults();
         } catch (Exception ex){
-          AssertionError err = new AssertionError("Failed to execute  CQ " + cqName);
-          err.initCause(ex);
-          throw err;
+          throw new AssertionError("Failed to execute  CQ " + cqName, ex);
         }
         
         //getLogWriter().info("initial result size = " + cqResults.size());
@@ -1957,7 +1954,7 @@ public class PrCqUsingPoolDUnitTest extends CacheTestCase {
           cqService = (PoolManager.find(poolName)).getQueryService();
         } catch (Exception cqe) {
           cqe.printStackTrace();
-          fail("Failed to getCQService.");
+          Assert.fail("Failed to getCQService.", cqe);
         }
         // Create CQ Attributes.
         CqAttributesFactory cqf = new CqAttributesFactory();
@@ -1973,10 +1970,8 @@ public class PrCqUsingPoolDUnitTest extends CacheTestCase {
           assertTrue("newCq() state mismatch", cq1.getState().isStopped());
           LogWriterUtils.getLogWriter().info("Created a new CqQuery : "+cq1);
         } catch (Exception ex){
-          AssertionError err = new AssertionError("Failed to create CQ " + cqName + " . ");
-          err.initCause(ex);
-          LogWriterUtils.getLogWriter().info("CqService is :" + cqService, err);
-          throw err;
+          LogWriterUtils.getLogWriter().info("CqService is :" + cqService, ex);
+          throw new AssertionError("Failed to create CQ " + cqName + " . ", ex);
         }
       }
     });   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/dunit/QueryMonitorDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/dunit/QueryMonitorDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/dunit/QueryMonitorDUnitTest.java
index 3671237..7932e5c 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/dunit/QueryMonitorDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/cache/query/dunit/QueryMonitorDUnitTest.java
@@ -20,6 +20,8 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Properties;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.AttributesFactory;
 import com.gemstone.gemfire.cache.Cache;
 import com.gemstone.gemfire.cache.CacheException;
@@ -58,6 +60,7 @@ import com.gemstone.gemfire.test.dunit.SerializableRunnable;
 import com.gemstone.gemfire.test.dunit.ThreadUtils;
 import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.dunit.Wait;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 /**
  * Tests for QueryMonitoring service.
@@ -472,6 +475,7 @@ public class QueryMonitorDUnitTest extends CacheTestCase {
   /**
    * Tests query execution on local vm.
    */
+  @Category(FlakyTest.class) // GEODE-577: eats exceptions
   public void testQueryExecutionLocally() throws Exception {
 
     setup(2);
@@ -530,11 +534,11 @@ public class QueryMonitorDUnitTest extends CacheTestCase {
               Query query = queryService.newQuery(qStr);
               query.execute();
               fail("The query should have been canceled by the QueryMonitor. Query: " + qStr);
-            }catch (Exception e){
+            }catch (Exception e){ // TODO: this is too broad -- catch only the expected exception
               verifyException(e);
             }
           }
-        } catch (Exception ex){
+        } catch (Exception ex){ // TODO: do not catch or rethrow inside AssertionError
           GemFireCacheImpl.getInstance().getLogger().fine("Exception creating the query service", ex);
         }
       }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DurableClientSimpleDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DurableClientSimpleDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DurableClientSimpleDUnitTest.java
index 3812ea0..28d401f 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DurableClientSimpleDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/internal/cache/tier/sockets/DurableClientSimpleDUnitTest.java
@@ -2947,7 +2947,7 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
    * being reactivated
    * @throws Exception
    */
-  @Category(FlakyTest.class) // GEODE-1060
+  @Category(FlakyTest.class) // GEODE-1060: random ports, async actions, time sensitive, eats exceptions (fixed 1)
   public void testCqCloseExceptionDueToActivatingClient() throws Exception {
     try {
       String greaterThan5Query = "select * from /" + regionName + " p where p.ID > 5";
@@ -3002,7 +3002,7 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
           catch (CqException e) {
             String expected = LocalizedStrings.CacheClientProxy_COULD_NOT_DRAIN_CQ_DUE_TO_RESTARTING_DURABLE_CLIENT.toLocalizedString("All", proxyId.getDurableId());
             if (!e.getMessage().equals(expected)) {            
-             fail("Not the expected exception, was expecting " + (LocalizedStrings.CacheClientProxy_COULD_NOT_DRAIN_CQ_DUE_TO_RESTARTING_DURABLE_CLIENT.toLocalizedString("All", proxyId.getDurableId()) + " instead of exception: " + e.getMessage()));
+             Assert.fail("Not the expected exception, was expecting " + (LocalizedStrings.CacheClientProxy_COULD_NOT_DRAIN_CQ_DUE_TO_RESTARTING_DURABLE_CLIENT.toLocalizedString("All", proxyId.getDurableId()) + " instead of exception: " + e.getMessage()), e);
             }
           }
         }

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ClientCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ClientCommandsDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ClientCommandsDUnitTest.java
index 005077a..bc80563 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ClientCommandsDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/ClientCommandsDUnitTest.java
@@ -595,7 +595,7 @@ public void waitForListClientMbean2(){
   
   }
 
-  @Category(FlakyTest.class) // GEODE-908: time sensitive
+  @Category(FlakyTest.class) // GEODE-908: random ports, BindException, time sensitive, HeadlessGfsh
   @Test
   public void testListClient() throws Exception {
     setupSystemForListClient();
@@ -1156,7 +1156,7 @@ public void waitForMixedClients(){
     
   }
 
-  @Category(FlakyTest.class) // GEODE-910
+  @Category(FlakyTest.class) // GEODE-910: random ports, HeadlessGfsh
   @Test
   public void testDescribeClientForNonSubscribedClient() throws Exception {
     setUpNonSubscribedClient();
@@ -1232,7 +1232,7 @@ public void waitForMixedClients(){
     
   }
 
-  @Category(FlakyTest.class) // GEODE-1227
+  @Category(FlakyTest.class) // GEODE-1227: HeadlessGFSH, random ports, BindException
   @Test
   public void testDescribeMixClientWithServers() throws Exception {
     String[] clientIds = setupSystemWithSubAndNonSubClient();    

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientAuthzObjectModDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientAuthzObjectModDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientAuthzObjectModDUnitTest.java
index 3e05530..012ac33 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientAuthzObjectModDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientAuthzObjectModDUnitTest.java
@@ -81,7 +81,7 @@ public class ClientAuthzObjectModDUnitTest extends ClientAuthorizationTestCase {
     server2.invoke(registerInstantiator);
   }
 
-  @Category(FlakyTest.class) // GEODE-1228
+  @Category(FlakyTest.class) // GEODE-1228: random ports, BindException, uses Random
   @Test
   public void testAllOpsObjectModWithFailover() throws Exception {
     OperationWithAction[] allOps = allOps();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientPostAuthorizationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientPostAuthorizationDUnitTest.java b/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientPostAuthorizationDUnitTest.java
index cbda9f5..963d2f0 100644
--- a/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientPostAuthorizationDUnitTest.java
+++ b/geode-cq/src/test/java/com/gemstone/gemfire/security/ClientPostAuthorizationDUnitTest.java
@@ -111,7 +111,7 @@ public class ClientPostAuthorizationDUnitTest extends ClientAuthorizationTestCas
     }
   }
 
-  @Category(FlakyTest.class) // GEODE-1009: getRandomAvailablePort
+  @Category(FlakyTest.class) // GEODE-1009: random ports, uses Random, time sensitive, waitForCondition (waitForCriterion)
   @Test
   public void testAllOpsNotifications() throws Exception {
     OperationWithAction[] allOps = allOpsForTestAllOpsNotifications();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexRecoveryHAJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexRecoveryHAJUnitTest.java b/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexRecoveryHAJUnitTest.java
index bc6bfe4..2aa3241 100644
--- a/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexRecoveryHAJUnitTest.java
+++ b/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/internal/LuceneIndexRecoveryHAJUnitTest.java
@@ -16,7 +16,6 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package com.gemstone.gemfire.cache.lucene.internal;
 
 import static org.junit.Assert.*;
@@ -61,6 +60,7 @@ import com.jayway.awaitility.Awaitility;
 
 @Category(IntegrationTest.class)
 public class LuceneIndexRecoveryHAJUnitTest {
+
   private static final String INDEX = "index";
   private static final String REGION = "indexedRegion";
   String[] indexedFields = new String[] { "txt" };
@@ -122,7 +122,7 @@ public class LuceneIndexRecoveryHAJUnitTest {
     Assert.assertNotEquals(newRepo, repo);
   }
 
-  @Category(FlakyTest.class) // GEODE-1012
+  @Category(FlakyTest.class) // GEODE-1012: time sensitive, awaitility, short timeout
   @Test
   public void recoverPersistentIndex() throws Exception {
     String aeqId = LuceneServiceImpl.getUniqueIndexName(INDEX, REGION);
@@ -168,7 +168,7 @@ public class LuceneIndexRecoveryHAJUnitTest {
     userRegion.destroyRegion();
   }
 
-  @Category(FlakyTest.class) // GEODE-1013
+  @Category(FlakyTest.class) // GEODE-1013: time sensitive, awaitility, short timeout, possible disk pollution
   @Test
   public void overflowRegionIndex() throws Exception {
     String aeqId = LuceneServiceImpl.getUniqueIndexName(INDEX, REGION);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/cache/CacheXml70GatewayDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/cache/CacheXml70GatewayDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/cache/CacheXml70GatewayDUnitTest.java
index 9032a3e..59b5d02 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/cache/CacheXml70GatewayDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/cache/CacheXml70GatewayDUnitTest.java
@@ -16,7 +16,6 @@
  */
 package com.gemstone.gemfire.cache;
 
-import java.io.IOException;
 import java.util.Properties;
 import java.util.Set;
 
@@ -91,7 +90,7 @@ public class CacheXml70GatewayDUnitTest extends CacheXmlTestCase {
     }
   }
 
-  @Category(FlakyTest.class) // GEODE-978: hardcoded port range
+  @Category(FlakyTest.class) // GEODE-978: hardcoded port range, BindException
   public void testGatewayReceiver() throws Exception{
     getSystem();
     CacheCreation cache = new CacheCreation();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/CacheClientNotifierDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/CacheClientNotifierDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/CacheClientNotifierDUnitTest.java
index 83c8b78..66d1444 100755
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/CacheClientNotifierDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/CacheClientNotifierDUnitTest.java
@@ -165,7 +165,7 @@ public class CacheClientNotifierDUnitTest extends WANTestBase {
    * The test will start several cache servers, including gateway receivers.
    * Shutdown them and verify the CacheClientNofifier for each server is correct
    */
-  @Category(FlakyTest.class) // GEODE-1183
+  @Category(FlakyTest.class) // GEODE-1183: random ports, failure to start threads, eats exceptions, time sensitive
   public void testMultipleCacheServer() throws Exception {
     /* test senario: */
     /* create 1 GatewaySender on vm0 */

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java
index 0f38441..a4b8823 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/WANTestBase.java
@@ -117,6 +117,7 @@ import com.gemstone.gemfire.internal.cache.wan.serial.ConcurrentSerialGatewaySen
 import com.gemstone.gemfire.internal.cache.wan.serial.SerialGatewaySenderQueue;
 import com.gemstone.gemfire.pdx.SimpleClass;
 import com.gemstone.gemfire.pdx.SimpleClass1;
+import com.gemstone.gemfire.test.dunit.Assert;
 import com.gemstone.gemfire.test.dunit.AsyncInvocation;
 import com.gemstone.gemfire.test.dunit.DistributedTestCase;
 import com.gemstone.gemfire.test.dunit.Host;
@@ -1530,7 +1531,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     for (AsyncInvocation invocation : tasks) {
       try {
-        invocation.join(30000);
+        invocation.join(30000); // TODO: these might be AsyncInvocation orphans
       }
       catch (InterruptedException e) {
         fail("Starting senders was interrupted");
@@ -2721,8 +2722,8 @@ public class WANTestBase extends DistributedTestCase{
     }
     catch (IOException e) {
       e.printStackTrace();
-      fail("Test " + getTestMethodName()
-          + " failed to start GatewayRecevier on port " + port);
+      Assert.fail("Test " + getTestMethodName()
+          + " failed to start GatewayRecevier on port " + port, e);
     }
     return port;
   }
@@ -3602,9 +3603,9 @@ public class WANTestBase extends DistributedTestCase{
       List<Future<Object>> l = execService.invokeAll(tasks);
       for (Future<Object> f : l)
         f.get();
-    } catch (InterruptedException e1) {
+    } catch (InterruptedException e1) { // TODO: eats exception
       e1.printStackTrace();
-    } catch (ExecutionException e) {
+    } catch (ExecutionException e) { // TODO: eats exceptions
       e.printStackTrace();
     }
     execService.shutdown();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java
index 069ce7a..f2bb37f 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentParallelGatewaySenderOperation_1_DUnitTest.java
@@ -26,9 +26,6 @@ import com.gemstone.gemfire.test.dunit.LogWriterUtils;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
-/**
- *
- */
 public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTestBase {
   private static final long serialVersionUID = 1L;
   
@@ -580,7 +577,7 @@ public class ConcurrentParallelGatewaySenderOperation_1_DUnitTest extends WANTes
    * Normal scenario in which a sender is stopped and then started again on accessor node.
    * @throws Exception
    */
-  @Category(FlakyTest.class) // GEODE-1011
+  @Category(FlakyTest.class) // GEODE-1011: random ports, time sensitive, waitForCriterion, 5 minute timeouts, 5 second thread sleeps, async actions
   public void testParallelPropagationSenderStartAfterStopOnAccessorNode() throws Throwable {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java
index 54385a2..6433836 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/concurrent/ConcurrentWANPropogation_2_DUnitTest.java
@@ -42,7 +42,7 @@ public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
 
   private static final long serialVersionUID = 1L;
 
-  @Category(FlakyTest.class) // GEODE-1121
+  @Category(FlakyTest.class) // GEODE-1121: random ports, async behavior, time sensitive, waitForCriterion, possibly memory intensive
   public void testSerialReplicatedWanWithOverflow() {
 
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java
index 9c472a1..604ceaf 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WANSSLDUnitTest.java
@@ -31,7 +31,7 @@ public class WANSSLDUnitTest extends WANTestBase{
     super(name);
   }
 
-  @Category(FlakyTest.class) // GEODE-1207
+  @Category(FlakyTest.class) // GEODE-1207: random ports, eats exceptions, time sensitive, waitForCriterion
   public void testSenderSSLReceiverSSL(){
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java
index 9d80b14..889ebc5 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/misc/WanValidationsDUnitTest.java
@@ -1252,7 +1252,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
     }
   }
 
-  @Category(FlakyTest.class) // GEODE-1019
+  @Category(FlakyTest.class) // GEODE-1019: random ports, time sensitive, waitForCriterion, suspect string: loss of quorum
   public void testBug50434_PR_Parallel_pass() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/ParallelWANPropogationOffHeapDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/ParallelWANPropogationOffHeapDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/ParallelWANPropogationOffHeapDUnitTest.java
index 49afd57..4add337 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/ParallelWANPropogationOffHeapDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/ParallelWANPropogationOffHeapDUnitTest.java
@@ -19,8 +19,7 @@ package com.gemstone.gemfire.internal.cache.wan.offheap;
 import com.gemstone.gemfire.internal.cache.wan.parallel.ParallelWANPropagationDUnitTest;
 
 @SuppressWarnings("serial")
-public class ParallelWANPropogationOffHeapDUnitTest extends
-    ParallelWANPropagationDUnitTest {
+public class ParallelWANPropogationOffHeapDUnitTest extends ParallelWANPropagationDUnitTest {
 
   public ParallelWANPropogationOffHeapDUnitTest(String name) {
     super(name);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
index 50ee029..a67315d 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
@@ -38,8 +38,6 @@ import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 /**
  * DUnit test for operations on ParallelGatewaySender
- * 
- *
  */
 public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
   private static final long serialVersionUID = 1L;
@@ -257,7 +255,7 @@ public class ParallelGatewaySenderOperationsDUnitTest extends WANTestBase {
    * Normal scenario in which a sender is stopped and then started again.
    * @throws Exception
    */
-  @Category(FlakyTest.class) // GEODE-933: pause sleeps, random ports, async actions
+  @Category(FlakyTest.class) // GEODE-933: pause sleeps, random ports, async actions, time sensitive
   public void testParallelPropagationSenderStartAfterStop() throws Exception {
     IgnoredException.addIgnoredException("Broken pipe");
     Integer[] locatorPorts = createLNAndNYLocators();

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/166320ef/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
index cee3234..dd9d417 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPersistenceEnabledGatewaySenderDUnitTest.java
@@ -35,8 +35,7 @@ import com.gemstone.gemfire.test.dunit.SerializableCallableIF;
 import com.gemstone.gemfire.test.dunit.SerializableRunnableIF;
 import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
-public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
-    WANTestBase {
+public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends WANTestBase {
 
   private static final long serialVersionUID = 1L;
   
@@ -451,7 +450,7 @@ public class ParallelWANPersistenceEnabledGatewaySenderDUnitTest extends
    * Dispatcher should not start dispatching events recovered from persistent sender.
    * Check if the remote site receives all the events.
    */
-  @Category(FlakyTest.class) // GEODE-1124
+  @Category(FlakyTest.class) // GEODE-1124: random ports, time sensitive, waitForCriterion, async behavior
   public void testPersistentPRWithGatewaySenderPersistenceEnabled_Restart2() {
     //create locator on local site
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));