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

[21/50] [abbrv] incubator-geode git commit: GEODE-1233: apply FlakyTest category to flickering tests

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/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 f5aa506..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
@@ -38,6 +38,7 @@ import com.gemstone.gemfire.management.internal.cli.result.CommandResult;
 import com.gemstone.gemfire.management.internal.cli.shell.Gfsh;
 import com.gemstone.gemfire.management.internal.cli.util.CommandStringBuilder;
 import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 @Category(DistributedTest.class)
 public class ShellCommandsDUnitTest extends CliCommandTestBase {
@@ -54,6 +55,7 @@ public class ShellCommandsDUnitTest extends CliCommandTestBase {
         "localhost[" + locatorPort + "]").toString());
   }
 
+  @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/f12ece59/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 b625cfa..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
@@ -26,6 +26,7 @@ import com.gemstone.gemfire.test.dunit.Host;
 import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.dunit.cache.internal.JUnit4CacheTestCase;
 import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 import com.gemstone.gemfire.util.test.TestUtil;
 import com.jayway.awaitility.Awaitility;
 import org.junit.After;
@@ -111,6 +112,7 @@ public class SharedConfigurationUsingDirDUnitTest extends JUnit4CacheTestCase {
     }
   }
 
+  @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/f12ece59/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 080404f..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
@@ -43,6 +43,7 @@ import org.junit.experimental.categories.Category;
 
 import com.gemstone.gemfire.internal.AvailablePort;
 import com.gemstone.gemfire.memcached.GemFireMemcachedServer.Protocol;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
 
 @Category(IntegrationTest.class)
@@ -156,6 +157,7 @@ public class GemcachedDevelopmentJUnitTest {
     assertNull(client.get("key1"));
   }
 
+  @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/f12ece59/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/f12ece59/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 825f532..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
@@ -18,6 +18,7 @@ package com.gemstone.gemfire.redis;
 
 import java.util.Random;
 
+import org.junit.experimental.categories.Category;
 import redis.clients.jedis.Jedis;
 
 import com.gemstone.gemfire.cache.CacheFactory;
@@ -31,6 +32,7 @@ import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.LogWriterUtils;
 import com.gemstone.gemfire.test.dunit.SerializableCallable;
 import com.gemstone.gemfire.test.dunit.VM;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class RedisDistDUnitTest extends DistributedTestCase {
 
@@ -105,6 +107,7 @@ public class RedisDistDUnitTest extends DistributedTestCase {
     disconnectAllFromDS();
   }
 
+  @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);
@@ -139,6 +142,7 @@ public class RedisDistDUnitTest extends DistributedTestCase {
     assertEquals(result1, result2);
   }
 
+  @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/f12ece59/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 83bf532..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
@@ -23,6 +23,7 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 import com.gemstone.gemfire.test.junit.categories.SecurityTest;
 
 /**
@@ -75,6 +76,7 @@ public class ClientAuthenticationDUnitTest extends ClientAuthenticationTestCase
     doTestCredentialsWithFailover(false);
   }
 
+  @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/f12ece59/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 179f29d..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
@@ -48,6 +48,7 @@ import com.gemstone.gemfire.test.dunit.Host;
 import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.dunit.internal.JUnit4DistributedTestCase;
 import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 import com.gemstone.gemfire.test.junit.categories.SecurityTest;
 
 /**
@@ -176,6 +177,7 @@ public class P2PAuthenticationDUnitTest extends JUnit4DistributedTestCase {
   /**
    * Authenticator is incorrect
    */
+  @Category(FlakyTest.class) // GEODE-1089: random port
   @Test
   public void testP2PAuthenticationWithInvalidAuthenticator() throws Exception {
     int locatorPort = getRandomAvailablePort(SOCKET);
@@ -204,6 +206,7 @@ public class P2PAuthenticationDUnitTest extends JUnit4DistributedTestCase {
     }
   }
 
+  @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/f12ece59/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 724766b..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
@@ -21,6 +21,8 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.CacheException;
 import com.gemstone.gemfire.cache.query.CqAttributes;
 import com.gemstone.gemfire.cache.query.CqAttributesFactory;
@@ -43,11 +45,11 @@ import com.gemstone.gemfire.test.dunit.NetworkUtils;
 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.junit.categories.FlakyTest;
 
 /**
  * This class tests the ContiunousQuery mechanism in GemFire.
  * This includes the test with diffetent data activities.
- *
  */
 public class CqPerfDUnitTest extends CacheTestCase {
 
@@ -399,6 +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: 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/f12ece59/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 073e82e..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
@@ -21,6 +21,8 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.CacheException;
 import com.gemstone.gemfire.cache.query.CqAttributes;
 import com.gemstone.gemfire.cache.query.CqAttributesFactory;
@@ -43,15 +45,15 @@ import com.gemstone.gemfire.test.dunit.NetworkUtils;
 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.junit.categories.FlakyTest;
 
 /**
  * This class tests the ContiunousQuery mechanism in GemFire.
  * This includes the test with diffetent data activities.
- *
  */
 public class CqPerfUsingPoolDUnitTest extends CacheTestCase {
 
-  protected CqQueryUsingPoolDUnitTest cqDUnitTest = new CqQueryUsingPoolDUnitTest("CqPerfUsingPoolDUnitTest");
+  protected CqQueryUsingPoolDUnitTest cqDUnitTest = new CqQueryUsingPoolDUnitTest("CqPerfUsingPoolDUnitTest"); // TODO: get rid of this!
   
   public CqPerfUsingPoolDUnitTest(String name) {
     super(name);
@@ -399,6 +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: random ports, time sensitive, waitForCriterion, 20 second timeouts
   public void testMatchingCqs() throws Exception {
     
     final Host host = Host.getHost(0);
@@ -406,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/f12ece59/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/f12ece59/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/f12ece59/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 8d4477f..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
@@ -21,6 +21,8 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.AttributesFactory;
 import com.gemstone.gemfire.cache.Cache;
 import com.gemstone.gemfire.cache.CacheException;
@@ -49,6 +51,8 @@ import com.gemstone.gemfire.test.dunit.VM;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.cache30.CacheSerializableRunnable;
 import com.gemstone.gemfire.cache30.CacheTestCase;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
+
 /**
  * Test class for Partitioned Region and CQs
  * 
@@ -56,7 +60,6 @@ import com.gemstone.gemfire.cache30.CacheTestCase;
  */
 public class PrCqUsingPoolDUnitTest extends CacheTestCase {
 
-  
   public PrCqUsingPoolDUnitTest(String name) {
     super(name);
   }
@@ -1189,6 +1192,7 @@ public class PrCqUsingPoolDUnitTest extends CacheTestCase {
    * thus making the query data and region data inconsistent.
    * @throws Exception
    */
+  @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);
@@ -1250,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());
@@ -1952,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();
@@ -1968,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/f12ece59/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/f12ece59/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 0a263eb..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
@@ -1,25 +1,26 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package com.gemstone.gemfire.internal.cache.tier.sockets;
 
 import java.util.Iterator;
-
-import org.junit.Ignore;
-
+
+import org.junit.Ignore;
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.CacheException;
 import com.gemstone.gemfire.cache.InterestResultPolicy;
 import com.gemstone.gemfire.cache.Region;
@@ -36,21 +37,22 @@ import com.gemstone.gemfire.cache.query.CqQuery;
 import com.gemstone.gemfire.cache.query.QueryService;
 import com.gemstone.gemfire.cache.query.RegionNotFoundException;
 import com.gemstone.gemfire.cache30.CacheSerializableRunnable;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.cache.ClientServerObserver;
-import com.gemstone.gemfire.internal.cache.ClientServerObserverAdapter;
-import com.gemstone.gemfire.internal.cache.ClientServerObserverHolder;
+import com.gemstone.gemfire.distributed.internal.DistributionConfig;
+import com.gemstone.gemfire.internal.cache.ClientServerObserver;
+import com.gemstone.gemfire.internal.cache.ClientServerObserverAdapter;
+import com.gemstone.gemfire.internal.cache.ClientServerObserverHolder;
 import com.gemstone.gemfire.internal.cache.PoolFactoryImpl;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.test.dunit.Assert;
-import com.gemstone.gemfire.test.dunit.AsyncInvocation;
-import com.gemstone.gemfire.test.dunit.Host;
-import com.gemstone.gemfire.test.dunit.IgnoredException;
-import com.gemstone.gemfire.test.dunit.LogWriterUtils;
-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.internal.i18n.LocalizedStrings;
+import com.gemstone.gemfire.test.dunit.Assert;
+import com.gemstone.gemfire.test.dunit.AsyncInvocation;
+import com.gemstone.gemfire.test.dunit.Host;
+import com.gemstone.gemfire.test.dunit.IgnoredException;
+import com.gemstone.gemfire.test.dunit.LogWriterUtils;
+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;
 
 public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
 
@@ -184,7 +186,7 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
     });
     
     // Stop the durable client
-    this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
+    this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
     
     // Verify the durable client is no longer on the server
     this.server1VM.invoke(new CacheSerializableRunnable("Verify durable client") {
@@ -303,7 +305,7 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
     this.publisherClientVM.invoke(() -> CacheServerTestUtil.closeCache());
     
     // Stop the durable client
-    this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
+    this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
     
     // Stop the server
     this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
@@ -369,17 +371,17 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
     });
     
     // Stop the durable clients
-    this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
+    this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
     durableClient2VM.invoke(() -> CacheServerTestUtil.closeCache());
     
     // Stop the server
     this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
-  }
-  
+  }
+  
   /**
    * Test that starting a durable client on multiple servers (one live and one
    * not live) is processed correctly.
-   */
+   */
   @Ignore("Disabled for bug 52043")
   public void DISABLED_testDurableClientMultipleServersOneLive() {
     // Start server 1
@@ -1070,7 +1072,7 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
     });
     
     // Stop the durable clients
-    this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
+    this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
 
     // Stop the server
     this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
@@ -1079,8 +1081,8 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
   //This test method is disabled because it is failing
   //periodically and causing cruise control failures
   //See bug #47060
-  public void testReadyForEventsNotCalledImplicitlyWithCacheXML() {
-    try {
+  public void testReadyForEventsNotCalledImplicitlyWithCacheXML() {
+    try {
       setPeriodicACKObserver(durableClientVM);
       final String cqName = "cqTest";
       // Start a server
@@ -1311,38 +1313,38 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
       this.durableClientVM.invoke(() -> CacheServerTestUtil.closeCache());
   
       // Stop the server
-      this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
-    }finally{
-      unsetPeriodicACKObserver(durableClientVM);
+      this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
+    }finally{
+      unsetPeriodicACKObserver(durableClientVM);
     }
-  }
-  
-  private void setPeriodicACKObserver(VM vm){
-    CacheSerializableRunnable cacheSerializableRunnable = new CacheSerializableRunnable("Set ClientServerObserver"){
-      @Override
-      public void run2() throws CacheException {
-        PoolImpl.BEFORE_SENDING_CLIENT_ACK_CALLBACK_FLAG = true;
-        ClientServerObserver origObserver = ClientServerObserverHolder.setInstance(new ClientServerObserverAdapter() {
-          public void beforeSendingClientAck()
-          {
-            LogWriterUtils.getLogWriter().info("beforeSendingClientAck invoked");
-           
-          }
-        });
-        
-      }
-    };
-    vm.invoke(cacheSerializableRunnable);
-  }
-  
-  private void unsetPeriodicACKObserver(VM vm){
-    CacheSerializableRunnable cacheSerializableRunnable = new CacheSerializableRunnable("Unset ClientServerObserver"){
-      @Override
-      public void run2() throws CacheException {
-        PoolImpl.BEFORE_SENDING_CLIENT_ACK_CALLBACK_FLAG = false;        
-      }
-    };
-    vm.invoke(cacheSerializableRunnable);
+  }
+  
+  private void setPeriodicACKObserver(VM vm){
+    CacheSerializableRunnable cacheSerializableRunnable = new CacheSerializableRunnable("Set ClientServerObserver"){
+      @Override
+      public void run2() throws CacheException {
+        PoolImpl.BEFORE_SENDING_CLIENT_ACK_CALLBACK_FLAG = true;
+        ClientServerObserver origObserver = ClientServerObserverHolder.setInstance(new ClientServerObserverAdapter() {
+          public void beforeSendingClientAck()
+          {
+            LogWriterUtils.getLogWriter().info("beforeSendingClientAck invoked");
+           
+          }
+        });
+        
+      }
+    };
+    vm.invoke(cacheSerializableRunnable);
+  }
+  
+  private void unsetPeriodicACKObserver(VM vm){
+    CacheSerializableRunnable cacheSerializableRunnable = new CacheSerializableRunnable("Unset ClientServerObserver"){
+      @Override
+      public void run2() throws CacheException {
+        PoolImpl.BEFORE_SENDING_CLIENT_ACK_CALLBACK_FLAG = false;        
+      }
+    };
+    vm.invoke(cacheSerializableRunnable);
   }
   
   public void testReadyForEventsNotCalledImplicitlyForRegisterInterestWithCacheXML() {
@@ -2822,7 +2824,7 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
    * The client should be rejected until no cqs are currently being drained
    * @throws Exception
    */
-  public void testRejectClientWhenDrainingCq() throws Exception {
+  public void testRejectClientWhenDrainingCq() throws Exception {
     try {
       IgnoredException.addIgnoredException(LocalizedStrings.CacheClientNotifier_COULD_NOT_CONNECT_DUE_TO_CQ_BEING_DRAINED.toLocalizedString());
       IgnoredException.addIgnoredException("Could not initialize a primary queue on startup. No queue servers available.");
@@ -2856,15 +2858,15 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
       startClient(publisherClientVM, serverPort, regionName);
     
       // Publish some entries
-      publishEntries(publisherClientVM, regionName, 10);
-      
-      this.server1VM.invoke(new CacheSerializableRunnable(
-          "Set test hook") {
-        public void run2() throws CacheException {
-          //Set the Test Hook!
-          //This test hook will pause during the drain process
-          CacheClientProxy.testHook = new RejectClientReconnectTestHook();
-        }
+      publishEntries(publisherClientVM, regionName, 10);
+      
+      this.server1VM.invoke(new CacheSerializableRunnable(
+          "Set test hook") {
+        public void run2() throws CacheException {
+          //Set the Test Hook!
+          //This test hook will pause during the drain process
+          CacheClientProxy.testHook = new RejectClientReconnectTestHook();
+        }
       });
               
       this.server1VM.invokeAsync(new CacheSerializableRunnable(
@@ -2928,14 +2930,14 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
       this.publisherClientVM.invoke(() -> CacheServerTestUtil.closeCache());
   
       // Stop the server
-      this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
-    }finally{
-      this.server1VM.invoke(new CacheSerializableRunnable(
-          "unset test hook") {
-        public void run2() throws CacheException {
-          CacheClientProxy.testHook = null;
-        }
-      });
+      this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
+    }finally{
+      this.server1VM.invoke(new CacheSerializableRunnable(
+          "unset test hook") {
+        public void run2() throws CacheException {
+          CacheClientProxy.testHook = null;
+        }
+      });
     }
   }
   
@@ -2945,7 +2947,8 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
    * being reactivated
    * @throws Exception
    */
-  public void testCqCloseExceptionDueToActivatingClient() throws Exception {
+  @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";
       String allQuery = "select * from /" + regionName + " p where p.ID > -1";
@@ -2999,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);
             }
           }
         }
@@ -3030,14 +3033,14 @@ public class DurableClientSimpleDUnitTest extends DurableClientTestCase {
       this.publisherClientVM.invoke(() -> CacheServerTestUtil.closeCache());
   
       // Stop the server
-      this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
-    }finally {
-      this.server1VM.invoke(new CacheSerializableRunnable(
-          "unset test hook") {
-        public void run2() throws CacheException {
-          CacheClientProxy.testHook = null;
-        }
-      });
+      this.server1VM.invoke(() -> CacheServerTestUtil.closeCache());
+    }finally {
+      this.server1VM.invoke(new CacheSerializableRunnable(
+          "unset test hook") {
+        public void run2() throws CacheException {
+          CacheClientProxy.testHook = null;
+        }
+      });
     }
   }
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/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 6fef000..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
@@ -83,7 +83,7 @@ import com.gemstone.gemfire.test.junit.categories.FlakyTest;
  * Dunit class for testing gemfire Client commands : list client , describe client 
  * @since 8.0
  */
-@Category({ DistributedTest.class, FlakyTest.class }) // see GEODE-1034
+@Category(DistributedTest.class)
 public class ClientCommandsDUnitTest extends CliCommandTestBase {
 
   private static final long serialVersionUID = 1L;
@@ -595,6 +595,7 @@ public void waitForListClientMbean2(){
   
   }
 
+  @Category(FlakyTest.class) // GEODE-908: random ports, BindException, time sensitive, HeadlessGfsh
   @Test
   public void testListClient() throws Exception {
     setupSystemForListClient();
@@ -1154,7 +1155,8 @@ public void waitForMixedClients(){
     }); 
     
   }
-  
+
+  @Category(FlakyTest.class) // GEODE-910: random ports, HeadlessGfsh
   @Test
   public void testDescribeClientForNonSubscribedClient() throws Exception {
     setUpNonSubscribedClient();
@@ -1230,6 +1232,7 @@ public void waitForMixedClients(){
     
   }
 
+  @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/f12ece59/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 fe0e4c3..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
@@ -41,6 +41,7 @@ import com.gemstone.gemfire.security.generator.DummyCredentialGenerator;
 import com.gemstone.gemfire.security.templates.UserPasswordAuthInit;
 import com.gemstone.gemfire.test.dunit.SerializableRunnable;
 import com.gemstone.gemfire.test.junit.categories.DistributedTest;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 import com.gemstone.gemfire.test.junit.categories.SecurityTest;
 
 /**
@@ -79,7 +80,8 @@ public class ClientAuthzObjectModDUnitTest extends ClientAuthorizationTestCase {
     server1.invoke(registerInstantiator);
     server2.invoke(registerInstantiator);
   }
-  
+
+  @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/f12ece59/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 5db15f0..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
@@ -46,14 +46,11 @@ import com.gemstone.gemfire.test.junit.rules.RetryRule;
  * 
  * @since 5.5
  */
-@Category({ DistributedTest.class, SecurityTest.class, FlakyTest.class}) // GEODE-693, GEODE-1009: getRandomAvailablePort
+@Category({ DistributedTest.class, SecurityTest.class })
 public class ClientPostAuthorizationDUnitTest extends ClientAuthorizationTestCase {
 
-  @Rule
-  public RetryRule retryRule = new RetryRule();
-
+  @Category(FlakyTest.class) // GEODE-693: getRandomAvailablePort
   @Test
-  @Retry(2) // GEODE-693: getRandomAvailablePort
   public void testAllPostOps() throws Exception {
     OperationWithAction[] allOps = allOpsForTestAllPostOps();
 
@@ -114,8 +111,8 @@ public class ClientPostAuthorizationDUnitTest extends ClientAuthorizationTestCas
     }
   }
 
+  @Category(FlakyTest.class) // GEODE-1009: random ports, uses Random, time sensitive, waitForCondition (waitForCriterion)
   @Test
-  @Retry(2) // GEODE-1009: getRandomAvailablePort
   public void testAllOpsNotifications() throws Exception {
     OperationWithAction[] allOps = allOpsForTestAllOpsNotifications();
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/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 9ab6e81..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.*;
@@ -55,11 +54,13 @@ import com.gemstone.gemfire.internal.cache.BucketNotFoundException;
 import com.gemstone.gemfire.internal.cache.EvictionAttributesImpl;
 import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
 import com.gemstone.gemfire.internal.cache.PartitionedRegion;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
 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" };
@@ -121,6 +122,7 @@ public class LuceneIndexRecoveryHAJUnitTest {
     Assert.assertNotEquals(newRepo, repo);
   }
 
+  @Category(FlakyTest.class) // GEODE-1012: time sensitive, awaitility, short timeout
   @Test
   public void recoverPersistentIndex() throws Exception {
     String aeqId = LuceneServiceImpl.getUniqueIndexName(INDEX, REGION);
@@ -166,6 +168,7 @@ public class LuceneIndexRecoveryHAJUnitTest {
     userRegion.destroyRegion();
   }
 
+  @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/f12ece59/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 a69bb37..6badaa2 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,10 +16,11 @@
  */
 package com.gemstone.gemfire.cache;
 
-import java.io.IOException;
 import java.util.Properties;
 import java.util.Set;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.asyncqueue.AsyncEventListener;
 import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueue;
 import com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueueFactory;
@@ -40,6 +41,7 @@ import com.gemstone.gemfire.internal.cache.xmlcache.CacheXml;
 import com.gemstone.gemfire.internal.cache.xmlcache.ParallelGatewaySenderCreation;
 import com.gemstone.gemfire.internal.cache.xmlcache.RegionAttributesCreation;
 import com.gemstone.gemfire.internal.cache.xmlcache.SerialGatewaySenderCreation;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class CacheXml70GatewayDUnitTest extends CacheXmlTestCase {
 
@@ -87,8 +89,9 @@ public class CacheXml70GatewayDUnitTest extends CacheXmlTestCase {
       CacheXml70DUnitTest.validateAsyncEventQueue(asyncEventQueue, asyncEventQueueOnCache);
     }
   }
-  
-  public void testGatewayReceiver() throws CacheException{
+
+  @Category(FlakyTest.class) // GEODE-978: hardcoded port range, BindException
+  public void testGatewayReceiver() throws Exception{
     getSystem();
     CacheCreation cache = new CacheCreation();
     
@@ -103,12 +106,9 @@ public class CacheXml70GatewayDUnitTest extends CacheXmlTestCase {
     GatewayTransportFilter myStreamfilter2 = new MyGatewayTransportFilter2();
     gatewayReceiverFactory.addGatewayTransportFilter(myStreamfilter2);
     GatewayReceiver receiver1 = gatewayReceiverFactory.create();
-    try {
-      receiver1.start();
-    }
-    catch (IOException e) {
-      fail("Could not start GatewayReceiver");
-    }
+
+    receiver1.start();
+
     testXml(cache);
     Cache c = getCache();
     assertNotNull(c);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/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 7406f2d..8bf819c 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
@@ -19,6 +19,8 @@ package com.gemstone.gemfire.internal.cache.wan;
 import java.io.IOException;
 import java.util.List;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.DiskStore;
 import com.gemstone.gemfire.cache.EvictionAction;
 import com.gemstone.gemfire.cache.EvictionAttributes;
@@ -40,6 +42,7 @@ 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.internal.cache.GemFireCacheImpl;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class CacheClientNotifierDUnitTest extends WANTestBase {
   private static final int NUM_KEYS = 10;
@@ -162,6 +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: 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/f12ece59/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 aca2cb9..39154b2 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
@@ -114,6 +114,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;
@@ -1036,7 +1037,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");
@@ -1966,8 +1967,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;
   }
@@ -2709,9 +2710,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();
@@ -3676,7 +3677,7 @@ public class WANTestBase extends DistributedTestCase{
     }
     for (AsyncInvocation invocation : invocations) {
       invocation.join();
-      assertFalse(invocation.exceptionOccurred());
+      invocation.checkException();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/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 400a289..9145b58 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
@@ -16,16 +16,16 @@
  */
 package com.gemstone.gemfire.internal.cache.wan.concurrent;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy;
 import com.gemstone.gemfire.internal.cache.wan.WANTestBase;
 import com.gemstone.gemfire.test.dunit.AsyncInvocation;
 import com.gemstone.gemfire.test.dunit.IgnoredException;
 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;
   
@@ -577,6 +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: 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/f12ece59/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 6026b3a..cef9cbf 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
@@ -16,28 +16,28 @@
  */
 package com.gemstone.gemfire.internal.cache.wan.concurrent;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy;
 import com.gemstone.gemfire.internal.cache.wan.WANTestBase;
 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.junit.categories.FlakyTest;
 
 /**
  * All the test cases are similar to SerialWANPropogationDUnitTest except that
  * the we create concurrent serial GatewaySender with concurrency of 4
- *
  */
 public class ConcurrentWANPropogation_2_DUnitTest extends WANTestBase {
 
-  /**
-   * @param name
-   */
   public ConcurrentWANPropogation_2_DUnitTest(String name) {
     super(name);
   }
 
   private static final long serialVersionUID = 1L;
-  
+
+  @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/f12ece59/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 f322394..80e38fd 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
@@ -16,11 +16,14 @@
  */
 package com.gemstone.gemfire.internal.cache.wan.misc;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.Region;
 import com.gemstone.gemfire.internal.cache.wan.WANTestBase;
 import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.dunit.WaitCriterion;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class WANSSLDUnitTest extends WANTestBase{
 
@@ -28,6 +31,7 @@ public class WANSSLDUnitTest extends WANTestBase{
     super(name);
   }
 
+  @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/f12ece59/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 612a178..0fd9807 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
@@ -19,8 +19,10 @@ package com.gemstone.gemfire.internal.cache.wan.misc;
 import java.util.ArrayList;
 import java.util.Map;
 
-import com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy;
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.wan.GatewayEventFilter;
+import com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy;
 import com.gemstone.gemfire.cache.wan.GatewayTransportFilter;
 import com.gemstone.gemfire.cache30.MyGatewayTransportFilter1;
 import com.gemstone.gemfire.cache30.MyGatewayTransportFilter2;
@@ -33,6 +35,7 @@ import com.gemstone.gemfire.internal.cache.wan.WANTestBase;
 import com.gemstone.gemfire.test.dunit.Assert;
 import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.SerializableRunnableIF;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class WanValidationsDUnitTest extends WANTestBase {
 
@@ -1247,7 +1250,8 @@ public class WanValidationsDUnitTest extends WANTestBase {
       }
     }
   }
-  
+
+  @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/f12ece59/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/f12ece59/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/SerialWANPropogationOffHeapDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/SerialWANPropogationOffHeapDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/SerialWANPropogationOffHeapDUnitTest.java
index 1bcb879..e7ac75f 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/SerialWANPropogationOffHeapDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/offheap/SerialWANPropogationOffHeapDUnitTest.java
@@ -19,8 +19,7 @@ package com.gemstone.gemfire.internal.cache.wan.offheap;
 import com.gemstone.gemfire.internal.cache.wan.serial.SerialWANPropogationDUnitTest;
 
 @SuppressWarnings("serial")
-public class SerialWANPropogationOffHeapDUnitTest extends
-    SerialWANPropogationDUnitTest {
+public class SerialWANPropogationOffHeapDUnitTest extends SerialWANPropogationDUnitTest {
 
   public SerialWANPropogationOffHeapDUnitTest(String name) {
     super(name);

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

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/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 0d34f44..77661fe 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
@@ -16,6 +16,8 @@
  */
 package com.gemstone.gemfire.internal.cache.wan.parallel;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.GemFireIOException;
 import com.gemstone.gemfire.internal.cache.tier.sockets.Message;
 import com.gemstone.gemfire.internal.cache.tier.sockets.MessageTooLargeException;
@@ -27,11 +29,10 @@ import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.LogWriterUtils;
 import com.gemstone.gemfire.test.dunit.RMIException;
 import com.gemstone.gemfire.test.dunit.Wait;
+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;
@@ -249,6 +250,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: thread 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/f12ece59/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 ae38110..06a8211 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
@@ -18,6 +18,8 @@ package com.gemstone.gemfire.internal.cache.wan.parallel;
 
 import java.io.IOException;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.AttributesFactory;
 import com.gemstone.gemfire.cache.PartitionAttributesFactory;
 import com.gemstone.gemfire.cache.Region;
@@ -29,9 +31,9 @@ import com.gemstone.gemfire.test.dunit.AsyncInvocation;
 import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.LogWriterUtils;
 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;
   
@@ -446,6 +448,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: random ports, time sensitive, waitForCriterion, async behavior
   public void testPersistentPRWithGatewaySenderPersistenceEnabled_Restart2() {
     //create locator on local site
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java
index 63a129b..1a92fbf 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANPropagationDUnitTest.java
@@ -18,6 +18,8 @@ package com.gemstone.gemfire.internal.cache.wan.parallel;
 
 import java.util.Set;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.EntryExistsException;
 import com.gemstone.gemfire.cache.Region;
 import com.gemstone.gemfire.cache.client.ServerOperationException;
@@ -32,6 +34,7 @@ import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.LogWriterUtils;
 import com.gemstone.gemfire.test.dunit.SerializableRunnableIF;
 import com.gemstone.gemfire.test.dunit.Wait;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class ParallelWANPropagationDUnitTest extends WANTestBase {
   private static final long serialVersionUID = 1L;
@@ -680,6 +683,7 @@ public class ParallelWANPropagationDUnitTest extends WANTestBase {
         getTestMethodName() + "_PR", 1000 ));
   }
 
+  @Category(FlakyTest.class) // GEODE-1008 and GEODE-1180: random ports, async actions, thread sleeps, time sensitive, waitForCriterion
   public void testPartitionedParallelPropagationHA() throws Exception {
     IgnoredException.addIgnoredException("Broken pipe");
     IgnoredException.addIgnoredException("Connection reset");

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java
index 2a5801a..c2af835 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/parallel/ParallelWANStatsDUnitTest.java
@@ -23,9 +23,12 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.internal.cache.wan.WANTestBase;
 import com.gemstone.gemfire.test.dunit.AsyncInvocation;
 import com.gemstone.gemfire.test.dunit.VM;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class ParallelWANStatsDUnitTest extends WANTestBase{
   
@@ -254,6 +257,7 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
    * 
    * @throws Exception
    */
+  @Category(FlakyTest.class) // GEODE-977: random ports, time sensitive, waitForCriterion
   public void  testParallePropagationWithRemoteRegionDestroy() throws Exception {
     addIgnoredException("RegionDestroyedException");
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
@@ -290,6 +294,7 @@ public class ParallelWANStatsDUnitTest extends WANTestBase{
     assertTrue(v4List.get(5) + v5List.get(5) + v6List.get(5) + v7List.get(5) >= 1); //batches redistributed
   }
 
+  @Category(FlakyTest.class) // GEODE-977: random ports and relies on stats
   public void testParallelPropogationWithFilter() throws Exception {
 
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId(1));

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
index e7210ef..fb44a1a 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
@@ -21,6 +21,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.asyncqueue.AsyncEventListener;
 import com.gemstone.gemfire.cache.wan.GatewaySender;
 import com.gemstone.gemfire.internal.AvailablePortHelper;
@@ -30,10 +32,8 @@ import com.gemstone.gemfire.internal.cache.wan.MyGatewaySenderEventListener2;
 import com.gemstone.gemfire.internal.cache.wan.WANTestBase;
 import com.gemstone.gemfire.test.dunit.Wait;
 import com.gemstone.gemfire.test.dunit.WaitCriterion;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
-/**
- *
- */
 public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
 
   private static final long serialVersionUID = 1L;
@@ -150,6 +150,7 @@ public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
    * Test validates whether the listener attached receives all the events. 
    * When there are 2 listeners attcahed to the GatewaySender.
    */
+  @Category(FlakyTest.class) // GEODE-1066: random ports, waitForCriterion, time sensitive
   public void testGatewaySender2EventListenerInvocation() {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
@@ -193,7 +194,8 @@ public class SerialGatewaySenderEventListenerDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR", 0 ));
     vm3.invoke(() -> WANTestBase.validateRegionSize(
         getTestMethodName() + "_RR", 0 ));
-    
+
+    // TODO: move validateReceivedEventsMapSizeListener2 to a shared util class
     vm4.invoke(() -> SerialGatewaySenderEventListenerDUnitTest.validateReceivedEventsMapSizeListener2("ln", keyValues ));
   }
   

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f12ece59/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java
index 75d4de2..bb16a35 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropagationLoopBackDUnitTest.java
@@ -20,9 +20,11 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.internal.cache.wan.WANTestBase;
 import com.gemstone.gemfire.test.dunit.Wait;
-
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class SerialWANPropagationLoopBackDUnitTest extends WANTestBase {
   
@@ -121,7 +123,7 @@ public class SerialWANPropagationLoopBackDUnitTest extends WANTestBase {
     assertEquals(1, createList2.size());
   }
   
-  
+  @Category(FlakyTest.class) // GEODE-1148: random ports, eats exceptions (fixed 1), time sensitive, thread sleeps, waitForCriterion
   public void testReplicatedSerialPropagationLoopBack3SitesLoop() 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/f12ece59/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java
index c279d62..a9a6c29 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogationDUnitTest.java
@@ -19,6 +19,8 @@ package com.gemstone.gemfire.internal.cache.wan.serial;
 import java.io.IOException;
 import java.util.Map;
 
+import org.junit.experimental.categories.Category;
+
 import com.gemstone.gemfire.cache.CacheException;
 import com.gemstone.gemfire.cache.EntryExistsException;
 import com.gemstone.gemfire.cache.client.ServerOperationException;
@@ -30,6 +32,7 @@ import com.gemstone.gemfire.test.dunit.IgnoredException;
 import com.gemstone.gemfire.test.dunit.LogWriterUtils;
 import com.gemstone.gemfire.test.dunit.SerializableRunnableIF;
 import com.gemstone.gemfire.test.dunit.Wait;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class SerialWANPropogationDUnitTest extends WANTestBase {
 
@@ -97,7 +100,7 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
         getTestMethodName() + "_RR", "ln", isOffHeap()   );
   }
 
-  
+  @Category(FlakyTest.class) // GEODE-935 AND GEODE-1062: time sensitive, random ports, thread sleeps
   public void testReplicatedSerialPropagation_withoutRemoteSite() throws Exception {
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
 
@@ -955,8 +958,8 @@ public class SerialWANPropogationDUnitTest extends WANTestBase {
     vm6.invoke(() -> WANTestBase.checkMinimumGatewayReceiverStats( 1, 1 ));
   }
 
-  public void testReplicatedSerialPropagationWithRemoteReceiverRestartedOnOtherNode()
-      throws Exception {
+  @Category(FlakyTest.class) // GEODE-975 AND GEODE-1032: random ports, waitForCriterion, short timeouts, async actions
+  public void testReplicatedSerialPropagationWithRemoteReceiverRestartedOnOtherNode() 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/f12ece59/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java
index 66d4279..bfb3584 100644
--- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java
+++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/serial/SerialWANPropogation_PartitionedRegionDUnitTest.java
@@ -16,6 +16,7 @@
  */
 package com.gemstone.gemfire.internal.cache.wan.serial;
 
+import org.junit.experimental.categories.Category;
 
 import com.gemstone.gemfire.CancelException;
 import com.gemstone.gemfire.cache.CacheClosedException;
@@ -23,6 +24,7 @@ import com.gemstone.gemfire.internal.cache.ForceReattemptException;
 import com.gemstone.gemfire.internal.cache.wan.WANTestBase;
 import com.gemstone.gemfire.test.dunit.AsyncInvocation;
 import com.gemstone.gemfire.test.dunit.IgnoredException;
+import com.gemstone.gemfire.test.junit.categories.FlakyTest;
 
 public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase {
 
@@ -350,8 +352,8 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
         getTestMethodName() + "_PR", 1000 ));
   }
 
-  public void testPartitionedSerialPropagationWithParallelThreads()
-      throws Exception {
+  @Category(FlakyTest.class) // GEODE-1147: random ports, time sensitive, waitForCriterion, eats exceptions
+  public void testPartitionedSerialPropagationWithParallelThreads() throws Exception {
 
     Integer lnPort = (Integer)vm0.invoke(() -> WANTestBase.createFirstLocatorWithDSId( 1 ));
     Integer nyPort = (Integer)vm1.invoke(() -> WANTestBase.createFirstRemoteLocator( 2, lnPort ));
@@ -381,7 +383,7 @@ public class SerialWANPropogation_PartitionedRegionDUnitTest extends WANTestBase
         getTestMethodName() + "_PR", null, 1, 100, isOffHeap() ));
     createReceiverInVMs(vm2, vm3);
 
-    vm4.invoke(() -> WANTestBase.doMultiThreadedPuts(
+    vm4.invoke(() -> WANTestBase.doMultiThreadedPuts( // TODO: eats exceptions
         getTestMethodName() + "_PR", 1000 ));
 
     vm2.invoke(() -> WANTestBase.validateRegionSize(