This is an automated email from the ASF dual-hosted git repository.

dhemery pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 547542e  GEODE-8404: Simplify AvailablePortHelper (#5493)
547542e is described below

commit 547542ec9f05893e9e484d5be46efe83cdfc33e0
Author: Dale Emery <[email protected]>
AuthorDate: Wed Sep 2 09:36:08 2020 -0700

    GEODE-8404: Simplify AvailablePortHelper (#5493)
    
    Removed the following unused methods:
    - getRandomAvailableTCPPortRange(int)
    - getRandomAvailableTCPPorts(int,bool)
    - getRandomAvailableTCPPortRangeKeepers(int)
    - getRandomAvailableTCPPortRangeKeepers(int,bool)
    
    Removed two methods that used an ineffective, incorrect calculation to
    try to distribute ports evenly across VMs:
    
    - getRandomAvailablePortForDUnitSite()
    - getRandomAvailableTCPPortsForDUnitSite()
    
    These methods attempted to distribute ports by using the VM id as a
    modulus. The intention was something like this (assuming 5 VMs):
    
    VM 1 would get ports 20001, 20006, 20011, 20016, ...
    VM 2 would get ports 20002, 20007, 20012, 20017, ...
    VM 3 would get ports 20003, 20008, 20013, 20018, ...
    VM 4 would get ports 20004, 20009, 20014, 20019, ...
    VM 5 would get ports 20000, 20005, 20010, 20015, ...
    
    But the actual calculation distributed ports like this:
    
    VM 1: 20000, 20001, 20002, 20003, 20004, ...
    VM 2: 20000, 20002, 20004, 20006, 20008, ...
    VM 3: 20001, 20004, 20007, 20010, 20013, ...
    VM 4: 20000, 20004, 20008, 20012, 20016, ...
    VM 5: 20000, 20005, 20010, 20015, 20020, ...
    
    ... with lots of potential port collisions from one VM to another.
    
    The few uses of these methods were replaced by calls to existing methods
    getRandomAvailableTCPPort() and getRandomAvailableTCPPorts(), which
    offer a more reliable method of distributing ports.
---
 .../cache/query/dunit/PdxLocalQueryDUnitTest.java  |   6 +-
 .../PdxLocalQueryVersionedClassDUnitTest.java      |   2 +-
 .../geode/cache/query/dunit/PdxQueryDUnitTest.java |  22 +-
 .../cache/query/dunit/PdxStringQueryDUnitTest.java |   4 +-
 .../dunit/QueryParamsAuthorizationDUnitTest.java   |   2 +-
 .../query/dunit/SelectStarQueryDUnitTest.java      |   8 +-
 .../cache/tier/sockets/PingOpDistributedTest.java  |   6 +-
 .../AvailablePortHelperIntegrationTest.java        | 175 +-----------
 .../cache/wan/AsyncEventQueueTestBase.java         |   6 +-
 .../OfflineDiskStoreCommandsDUnitTest.java         |   8 +-
 .../apache/geode/internal/AvailablePortHelper.java | 311 ++++++++-------------
 .../redis/GeodeRedisServerStartupDUnitTest.java    |   2 +-
 .../internal/cache/UpdateVersionDUnitTest.java     |   6 +-
 .../geode/internal/cache/wan/WANTestBase.java      |  26 +-
 .../misc/SenderWithTransportFilterDUnitTest.java   |   2 +-
 .../cache/wan/misc/WANLocatorServerDUnitTest.java  |  10 +-
 .../cache/wan/misc/WanAutoDiscoveryDUnitTest.java  |  24 +-
 .../cache/wan/misc/WanValidationsDUnitTest.java    |   2 +-
 .../ParallelGatewaySenderOperationsDUnitTest.java  |   4 +-
 .../cache/wan/serial/GatewayReceiverDUnitTest.java |   4 +-
 .../SerialGatewaySenderEventListenerDUnitTest.java |   4 +-
 .../WANHostNameVerificationDistributedTest.java    |   2 +-
 .../cache/wan/WANRollingUpgradeDUnitTest.java      |   2 +-
 23 files changed, 197 insertions(+), 441 deletions(-)

diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxLocalQueryDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxLocalQueryDUnitTest.java
index 9c3d029..1c4ce10 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxLocalQueryDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxLocalQueryDUnitTest.java
@@ -295,7 +295,7 @@ public class PdxLocalQueryDUnitTest extends 
PDXQueryTestBase {
         }
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -637,7 +637,7 @@ public class PdxLocalQueryDUnitTest extends 
PDXQueryTestBase {
           r1.put("key-" + i, new PortfolioPdx(i));
         }
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -650,7 +650,7 @@ public class PdxLocalQueryDUnitTest extends 
PDXQueryTestBase {
       public Object call() throws Exception {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.PARTITION).create(regionName);
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxLocalQueryVersionedClassDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxLocalQueryVersionedClassDUnitTest.java
index 268f396..daab46f 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxLocalQueryVersionedClassDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxLocalQueryVersionedClassDUnitTest.java
@@ -69,7 +69,7 @@ public class PdxLocalQueryVersionedClassDUnitTest extends 
PDXQueryTestBase {
       public Object call() throws Exception {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxQueryDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxQueryDUnitTest.java
index 19bf8f8..0fa0067 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxQueryDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxQueryDUnitTest.java
@@ -2725,7 +2725,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -2739,7 +2739,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -2831,7 +2831,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.PARTITION).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -2845,7 +2845,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.PARTITION).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -2859,7 +2859,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.PARTITION).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -2977,7 +2977,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -2991,7 +2991,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -3214,7 +3214,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -3228,7 +3228,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -3350,7 +3350,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -3439,7 +3439,7 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
       public Object call() throws Exception {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regionName);
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxStringQueryDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxStringQueryDUnitTest.java
index 561cb50..897e9af 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxStringQueryDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxStringQueryDUnitTest.java
@@ -2011,7 +2011,7 @@ public class PdxStringQueryDUnitTest extends 
JUnit4CacheTestCase {
       public Object call() throws Exception {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.PARTITION).create(regionName);
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -2025,7 +2025,7 @@ public class PdxStringQueryDUnitTest extends 
JUnit4CacheTestCase {
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.PARTITION).create(regionName);
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryParamsAuthorizationDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryParamsAuthorizationDUnitTest.java
index ba422ae..5f9f28a 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryParamsAuthorizationDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/QueryParamsAuthorizationDUnitTest.java
@@ -74,7 +74,7 @@ public class QueryParamsAuthorizationDUnitTest extends 
JUnit4CacheTestCase {
       Cache cache = getCache(cf);
       cache.createRegionFactory(RegionShortcut.REPLICATE).create(regName);
       CacheServer server = cache.addCacheServer();
-      int serverPort = 
AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+      int serverPort = AvailablePortHelper.getRandomAvailableTCPPort();
       server.setPort(serverPort);
       server.start();
       return serverPort;
diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/SelectStarQueryDUnitTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/SelectStarQueryDUnitTest.java
index 45b9421..ff14dca 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/SelectStarQueryDUnitTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/SelectStarQueryDUnitTest.java
@@ -592,7 +592,7 @@ public class SelectStarQueryDUnitTest extends 
JUnit4CacheTestCase {
           r1.put("key-" + i, ba);
         }
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -1531,7 +1531,7 @@ public class SelectStarQueryDUnitTest extends 
JUnit4CacheTestCase {
         ((GemFireCacheImpl) getCache()).setReadSerializedForTest(true);
         Region r1 = 
getCache().createRegionFactory(RegionShortcut.REPLICATE).create(regName);
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -1622,7 +1622,7 @@ public class SelectStarQueryDUnitTest extends 
JUnit4CacheTestCase {
         }
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
@@ -1644,7 +1644,7 @@ public class SelectStarQueryDUnitTest extends 
JUnit4CacheTestCase {
         }
 
         CacheServer server = getCache().addCacheServer();
-        int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+        int port = AvailablePortHelper.getRandomAvailableTCPPort();
         server.setPort(port);
         server.start();
         return port;
diff --git 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/PingOpDistributedTest.java
 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/PingOpDistributedTest.java
index 3b41e75..a8a1ce5 100644
--- 
a/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/PingOpDistributedTest.java
+++ 
b/geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/PingOpDistributedTest.java
@@ -15,7 +15,7 @@
 package org.apache.geode.internal.cache.tier.sockets;
 
 import static java.util.Arrays.asList;
-import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPortsForDUnitSite;
+import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPorts;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -92,7 +92,7 @@ public class PingOpDistributedTest implements Serializable {
 
   @Before
   public void setUp() throws IOException {
-    int[] ports = getRandomAvailableTCPPortsForDUnitSite(2);
+    int[] ports = getRandomAvailableTCPPorts(2);
 
     client = getVM(0);
     server1 = getVM(1);
@@ -160,7 +160,7 @@ public class PingOpDistributedTest implements Serializable {
   public void pingReturnsErrorIfTheTargetServerIsNotAMember() {
     final String poolName = testName.getMethodName();
     parametrizedSetUp(poolName, Collections.singletonList(server1Port));
-    int notUsedPort = getRandomAvailableTCPPortsForDUnitSite(1)[0];
+    int notUsedPort = getRandomAvailableTCPPorts(1)[0];
     InternalDistributedMember fakeDistributedMember =
         new InternalDistributedMember("localhost", notUsedPort);
     client.invoke(() -> {
diff --git 
a/geode-core/src/integrationTest/java/org/apache/geode/internal/AvailablePortHelperIntegrationTest.java
 
b/geode-core/src/integrationTest/java/org/apache/geode/internal/AvailablePortHelperIntegrationTest.java
index 1f1199a..90edb0b 100644
--- 
a/geode-core/src/integrationTest/java/org/apache/geode/internal/AvailablePortHelperIntegrationTest.java
+++ 
b/geode-core/src/integrationTest/java/org/apache/geode/internal/AvailablePortHelperIntegrationTest.java
@@ -21,7 +21,6 @@ import static 
org.apache.geode.internal.AvailablePort.AVAILABLE_PORTS_LOWER_BOUN
 import static 
org.apache.geode.internal.AvailablePort.AVAILABLE_PORTS_UPPER_BOUND;
 import static org.apache.geode.internal.AvailablePort.MULTICAST;
 import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPortRange;
-import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPortRangeKeepers;
 import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPorts;
 import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableUDPPort;
 import static 
org.apache.geode.internal.AvailablePortHelper.initializeUniquePortRange;
@@ -49,7 +48,6 @@ import org.junit.Test;
 import org.junit.rules.ErrorCollector;
 import org.junit.runner.RunWith;
 
-import org.apache.geode.internal.AvailablePort.Keeper;
 import org.apache.geode.internal.lang.SystemUtils;
 
 @RunWith(JUnitParamsRunner.class)
@@ -79,30 +77,6 @@ public class AvailablePortHelperIntegrationTest {
   }
 
   @Test
-  public void getRandomAvailableTCPPortRange_returnsNoPorts_ifCountIsZero() {
-    int[] results = getRandomAvailableTCPPortRange(0);
-
-    assertThat(results)
-        .isEmpty();
-  }
-
-  @Test
-  public void getRandomAvailableTCPPortRange_returnsOnePort_ifCountIsOne() {
-    int[] results = getRandomAvailableTCPPortRange(1);
-
-    assertThat(results)
-        .hasSize(1);
-  }
-
-  @Test
-  public void getRandomAvailableTCPPortRange_returnsManyPorts_ifCountIsMany() {
-    int[] results = getRandomAvailableTCPPortRange(10);
-
-    assertThat(results)
-        .hasSize(10);
-  }
-
-  @Test
   @Parameters({"true", "false"})
   @TestCaseName("{method}(useMembershipPortRange={0})")
   public void getRandomAvailableTCPPortRange_returnsUsablePorts(boolean 
useMembershipPortRange) {
@@ -163,95 +137,6 @@ public class AvailablePortHelperIntegrationTest {
   }
 
   @Test
-  public void 
getRandomAvailableTCPPortRangeKeepers_returnsNoKeepers_ifCountIsZero() {
-    List<Keeper> results = getRandomAvailableTCPPortRangeKeepers(0);
-
-    assertThat(results)
-        .isEmpty();
-  }
-
-  @Test
-  public void 
getRandomAvailableTCPPortRangeKeepers_returnsOneKeeper_ifCountIsOne() {
-    List<Keeper> results = getRandomAvailableTCPPortRangeKeepers(1);
-
-    assertThat(results)
-        .hasSize(1);
-  }
-
-  @Test
-  public void 
getRandomAvailableTCPPortRangeKeepers_returnsManyKeepers_ifCountIsMany() {
-    List<Keeper> results = getRandomAvailableTCPPortRangeKeepers(10);
-
-    assertThat(results)
-        .hasSize(10);
-  }
-
-  @Test
-  @Parameters({"true", "false"})
-  @TestCaseName("{method}(useMembershipPortRange={0})")
-  public void getRandomAvailableTCPPortRangeKeepers_returnsUsableKeepers(
-      boolean useMembershipPortRange) {
-    List<Keeper> results = getRandomAvailableTCPPortRangeKeepers(10, 
useMembershipPortRange);
-
-    results.stream().forEach(keeper ->
-
-    assertThatKeeper(keeper)
-        .isUsable());
-  }
-
-  @Test
-  @Parameters({"true", "false"})
-  @TestCaseName("{method}(useMembershipPortRange={0})")
-  public void getRandomAvailableTCPPortRangeKeepers_returnsUniqueKeepers(
-      boolean useMembershipPortRange) {
-    List<Keeper> results = getRandomAvailableTCPPortRangeKeepers(10, 
useMembershipPortRange);
-
-    assertThat(keeperPorts(results))
-        .doesNotHaveDuplicates();
-  }
-
-  @Test
-  @Parameters({"true", "false"})
-  @TestCaseName("{method}(useMembershipPortRange={0})")
-  public void 
getRandomAvailableTCPPortRangeKeepers_returnsNaturallyOrderedPorts(
-      boolean useMembershipPortRange) {
-    List<Keeper> results = getRandomAvailableTCPPortRangeKeepers(10, 
useMembershipPortRange);
-
-    assertThat(keeperPorts(results))
-        .isSortedAccordingTo(naturalOrder());
-  }
-
-  @Test
-  @Parameters({"true", "false"})
-  @TestCaseName("{method}(useMembershipPortRange={0})")
-  public void getRandomAvailableTCPPortRangeKeepers_returnsConsecutivePorts(
-      boolean useMembershipPortRange) {
-    List<Keeper> results = getRandomAvailableTCPPortRangeKeepers(10, 
useMembershipPortRange);
-
-    assertThatSequence(keeperPorts(results))
-        .isConsecutive();
-  }
-
-  @Test
-  @Parameters({"true", "false"})
-  @TestCaseName("{method}(useMembershipPortRange={0})")
-  public void getRandomAvailableTCPPortRangeKeepers_returnsPortsInRange(
-      boolean useMembershipPortRange) {
-    int lower =
-        useMembershipPortRange ? DEFAULT_MEMBERSHIP_PORT_RANGE[0] : 
AVAILABLE_PORTS_LOWER_BOUND;
-    int upper =
-        useMembershipPortRange ? DEFAULT_MEMBERSHIP_PORT_RANGE[1] : 
AVAILABLE_PORTS_UPPER_BOUND;
-
-    List<Keeper> results = getRandomAvailableTCPPortRangeKeepers(10, 
useMembershipPortRange);
-
-    keeperPorts(results).forEach(port ->
-
-    assertThat(port)
-        .isGreaterThanOrEqualTo(lower)
-        .isLessThanOrEqualTo(upper));
-  }
-
-  @Test
   public void getRandomAvailableUDPPort_returnsNonZeroUdpPort() {
     int udpPort = getRandomAvailableUDPPort();
 
@@ -286,13 +171,11 @@ public class AvailablePortHelperIntegrationTest {
   }
 
   @Test
-  @Parameters({"true", "false"})
-  @TestCaseName("{method}(useMembershipPortRange={0})")
-  public void getRandomAvailableTCPPort_returnsUniqueValues(boolean 
useMembershipPortRange) {
+  public void getRandomAvailableTCPPort_returnsUniqueValues() {
     Collection<Integer> previousPorts = new HashSet<>();
     for (int i = 0; i < 3; ++i) {
 
-      int port = getRandomAvailableTCPPorts(1, useMembershipPortRange)[0];
+      int port = getRandomAvailableTCPPorts(1)[0];
 
       assertThat(previousPorts)
           .doesNotContain(port);
@@ -302,21 +185,19 @@ public class AvailablePortHelperIntegrationTest {
   }
 
   @Test
-  @Parameters({"true", "false"})
-  @TestCaseName("{method}(useMembershipPortRange={0})")
-  public void initializeUniquePortRange_returnSamePortsForSameRange(
-      boolean useMembershipPortRange) {
+  public void initializeUniquePortRange_returnSamePortsForSameRange() {
     assumeFalse(
-        "Windows has ports scattered throughout the range that makes this test 
difficult to pass consistently",
+        "Windows has ports scattered throughout the range that makes this test 
difficult to pass "
+            + "consistently",
         SystemUtils.isWindows());
 
     for (int i = 0; i < 3; ++i) {
 
       initializeUniquePortRange(i);
-      int[] previousPorts = getRandomAvailableTCPPorts(3, 
useMembershipPortRange);
+      int[] previousPorts = getRandomAvailableTCPPorts(3);
 
       initializeUniquePortRange(i);
-      int[] ports = getRandomAvailableTCPPorts(3, useMembershipPortRange);
+      int[] ports = getRandomAvailableTCPPorts(3);
 
       assertThat(ports)
           .isEqualTo(previousPorts);
@@ -324,19 +205,17 @@ public class AvailablePortHelperIntegrationTest {
   }
 
   @Test
-  @Parameters({"true", "false"})
-  @TestCaseName("{method}(useMembershipPortRange={0})")
-  public void initializeUniquePortRange_willReturnUniquePortsForUniqueRanges(
-      boolean useMembershipPortRange) {
+  public void initializeUniquePortRange_willReturnUniquePortsForUniqueRanges() 
{
     assumeFalse(
-        "Windows has ports scattered throughout the range that makes this test 
difficult to pass consistently",
+        "Windows has ports scattered throughout the range that makes this test 
difficult to pass "
+            + "consistently",
         SystemUtils.isWindows());
 
     Collection<Integer> previousPorts = new HashSet<>();
     for (int i = 0; i < 3; ++i) {
 
       initializeUniquePortRange(i);
-      int[] results = getRandomAvailableTCPPorts(5, useMembershipPortRange);
+      int[] results = getRandomAvailableTCPPorts(5);
 
       Collection<Integer> ports = toSet(results);
 
@@ -369,28 +248,14 @@ public class AvailablePortHelperIntegrationTest {
         .collect(Collectors.toSet());
   }
 
-  private List<Integer> keeperPorts(List<Keeper> keepers) {
-    return keepers.stream()
-        .map(Keeper::getPort)
-        .collect(Collectors.toList());
-  }
-
   private PortAssertion assertThatPort(int port) {
     return new PortAssertion(port);
   }
 
-  private KeeperAssertion assertThatKeeper(Keeper keeper) {
-    return new KeeperAssertion(keeper);
-  }
-
   private SequenceAssertion assertThatSequence(int[] integers) {
     return new SequenceAssertion(toList(integers));
   }
 
-  private SequenceAssertion assertThatSequence(List<Integer> integers) {
-    return new SequenceAssertion(integers);
-  }
-
   private class PortAssertion {
 
     private final int port;
@@ -417,23 +282,7 @@ public class AvailablePortHelperIntegrationTest {
     }
   }
 
-  private class KeeperAssertion {
-
-    private final Keeper keeper;
-
-    KeeperAssertion(Keeper keeper) {
-      this.keeper = keeper;
-    }
-
-    KeeperAssertion isUsable() {
-      int port = keeper.getPort();
-      keeper.release();
-      assertThatPort(port).isUsable();
-      return this;
-    }
-  }
-
-  private class SequenceAssertion {
+  private static class SequenceAssertion {
 
     private final List<Integer> actual;
 
diff --git 
a/geode-dunit/src/main/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
 
b/geode-dunit/src/main/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
index ffd986d..ba9b544 100644
--- 
a/geode-dunit/src/main/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
+++ 
b/geode-dunit/src/main/java/org/apache/geode/internal/cache/wan/AsyncEventQueueTestBase.java
@@ -180,7 +180,7 @@ public class AsyncEventQueueTestBase extends 
JUnit4DistributedTestCase {
       Locator.getLocator().stop();
     }
     AsyncEventQueueTestBase test = new AsyncEventQueueTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     Properties props = test.getDistributedSystemProperties();
     props.setProperty(MCAST_PORT, "0");
     // props.setProperty(DISTRIBUTED_SYSTEM_ID, "" + dsId);
@@ -193,7 +193,7 @@ public class AsyncEventQueueTestBase extends 
JUnit4DistributedTestCase {
 
   public static Integer createFirstRemoteLocator(int dsId, int remoteLocPort) {
     AsyncEventQueueTestBase test = new AsyncEventQueueTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     Properties props = test.getDistributedSystemProperties();
     props.setProperty(MCAST_PORT, "0");
     props.setProperty(DISTRIBUTED_SYSTEM_ID, "" + dsId);
@@ -944,7 +944,7 @@ public class AsyncEventQueueTestBase extends 
JUnit4DistributedTestCase {
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     fact.setManualStart(true);
diff --git 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
index 97c04ea..088eb3f 100644
--- 
a/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
+++ 
b/geode-gfsh/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/OfflineDiskStoreCommandsDUnitTest.java
@@ -17,7 +17,7 @@ package org.apache.geode.management.internal.cli.commands;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static 
org.apache.geode.distributed.ConfigurationProperties.START_LOCATOR;
-import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPortsForDUnitSite;
+import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPort;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.dunit.VM.getVM;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -130,7 +130,7 @@ public class OfflineDiskStoreCommandsDUnitTest implements 
Serializable {
     VM locator = getVM(0);
     VM server = getVM(1);
     final int ENTRIES = 100000;
-    int site1Port = getRandomAvailableTCPPortsForDUnitSite(1)[0];
+    int site1Port = getRandomAvailableTCPPort();
 
     File diskStoreDirectory1 = temporaryFolder.newFolder("diskDir1");
     File diskStoreDirectory2 = temporaryFolder.newFolder("diskDir2");
@@ -163,7 +163,7 @@ public class OfflineDiskStoreCommandsDUnitTest implements 
Serializable {
     VM locator = getVM(0);
     VM server = getVM(1);
     final int ENTRIES = 100000;
-    int site1Port = getRandomAvailableTCPPortsForDUnitSite(1)[0];
+    int site1Port = getRandomAvailableTCPPort();
     String threadName = "Asynchronous disk writer for region";
     int counter = 0;
 
@@ -218,7 +218,7 @@ public class OfflineDiskStoreCommandsDUnitTest implements 
Serializable {
     VM locator = getVM(0);
     VM server = getVM(1);
     final int ENTRIES = 100000;
-    int site1Port = getRandomAvailableTCPPortsForDUnitSite(1)[0];
+    int site1Port = getRandomAvailableTCPPort();
 
     File diskStoreDirectory1 = temporaryFolder.newFolder("diskDir1");
     File diskStoreDirectory2 = temporaryFolder.newFolder("diskDir2");
diff --git 
a/geode-junit/src/main/java/org/apache/geode/internal/AvailablePortHelper.java 
b/geode-junit/src/main/java/org/apache/geode/internal/AvailablePortHelper.java
index 643a5bd..a1686ca 100644
--- 
a/geode-junit/src/main/java/org/apache/geode/internal/AvailablePortHelper.java
+++ 
b/geode-junit/src/main/java/org/apache/geode/internal/AvailablePortHelper.java
@@ -14,277 +14,184 @@
  */
 package org.apache.geode.internal;
 
+import static java.util.stream.Collectors.toList;
 import static 
org.apache.geode.distributed.internal.DistributionConfig.DEFAULT_MEMBERSHIP_PORT_RANGE;
 import static 
org.apache.geode.internal.AvailablePort.AVAILABLE_PORTS_LOWER_BOUND;
 import static 
org.apache.geode.internal.AvailablePort.AVAILABLE_PORTS_UPPER_BOUND;
+import static org.apache.geode.internal.AvailablePort.MULTICAST;
+import static org.apache.geode.internal.AvailablePort.SOCKET;
 import static org.apache.geode.internal.AvailablePort.getAddress;
+import static org.apache.geode.internal.AvailablePort.isPortAvailable;
+import static org.apache.geode.internal.AvailablePort.isPortKeepable;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
 
 import org.apache.geode.internal.AvailablePort.Keeper;
 
 /**
- * Provides helper methods for acquiring a set of unique available ports. It 
is not safe to simply
- * call AvailablePort.getRandomAvailablePort several times in a row without 
doing something to
- * ensure that they are unique. Although they are random, it is possible for 
subsequent calls to
- * getRandomAvailablePort to return the same integer, unless that port is put 
into use before
- * further calls to getRandomAvailablePort.
+ * Methods for acquiring one or more available ports. Despite "random" in the 
names, these methods
+ * allocate ports in a round-robin fashion.
  */
 public class AvailablePortHelper {
-  private final AtomicInteger currentMembershipPort;
-  private final AtomicInteger currentAvailablePort;
+  private final AtomicInteger nextMembershipPort;
+  private final AtomicInteger nextAvailablePort;
 
   // Singleton object is only used to track the current ports
   private static final AvailablePortHelper singleton = new 
AvailablePortHelper();
 
   AvailablePortHelper() {
-    Random rand;
-    boolean fast = Boolean.getBoolean("AvailablePort.fastRandom");
-    if (fast)
-      rand = new Random();
-    else
-      rand = new java.security.SecureRandom();
-    currentMembershipPort = new AtomicInteger(
-        rand.nextInt(DEFAULT_MEMBERSHIP_PORT_RANGE[1] - 
DEFAULT_MEMBERSHIP_PORT_RANGE[0])
-            + DEFAULT_MEMBERSHIP_PORT_RANGE[0]);
-    currentAvailablePort =
-        new AtomicInteger(rand.nextInt(AVAILABLE_PORTS_UPPER_BOUND - 
AVAILABLE_PORTS_LOWER_BOUND)
-            + AVAILABLE_PORTS_LOWER_BOUND);
+    Random rand = rand();
+    nextMembershipPort =
+        randomInRange(rand, DEFAULT_MEMBERSHIP_PORT_RANGE[0], 
DEFAULT_MEMBERSHIP_PORT_RANGE[1]);
+    nextAvailablePort =
+        randomInRange(rand, AVAILABLE_PORTS_LOWER_BOUND, 
AVAILABLE_PORTS_UPPER_BOUND);
   }
 
   /**
-   * Returns array of unique randomly available tcp ports of specified count.
+   * Returns an available tcp port.
    */
-  public static int[] getRandomAvailableTCPPorts(int count) {
-    return getRandomAvailableTCPPorts(count, false);
+  public static int getRandomAvailableTCPPort() {
+    return availablePort(SOCKET);
   }
 
   /**
-   * Returns an array of unique randomly available tcp ports
-   *
-   * @param count number of desired ports
-   * @param useMembershipPortRange whether to use the configured 
membership-port-range
-   * @return the ports
+   * Returns an available udp port.
    */
-  public static int[] getRandomAvailableTCPPorts(int count, boolean 
useMembershipPortRange) {
-    List<Keeper> list = getRandomAvailableTCPPortKeepers(count, 
useMembershipPortRange);
-    int[] ports = new int[list.size()];
-    int i = 0;
-    for (Keeper k : list) {
-      ports[i] = k.getPort();
-      k.release();
-      i++;
-    }
-    return ports;
-  }
-
-  public static List<Keeper> getRandomAvailableTCPPortKeepers(int count) {
-    return getRandomAvailableTCPPortKeepers(count, false);
-  }
-
-  private static List<Keeper> getRandomAvailableTCPPortKeepers(int count,
-      boolean useMembershipPortRange) {
-    List<Keeper> result = new ArrayList<>();
-    while (result.size() < count) {
-      result.add(getUniquePortKeeper(useMembershipPortRange, 
AvailablePort.SOCKET));
-    }
-    return result;
+  public static int getRandomAvailableUDPPort() {
+    return availablePort(MULTICAST);
   }
 
-  public static int[] getRandomAvailableTCPPortRange(final int count) {
-    return getRandomAvailableTCPPortRange(count, false);
+  /**
+   * Returns the requested number of available tcp ports.
+   */
+  public static int[] getRandomAvailableTCPPorts(int count) {
+    return IntStream.generate(AvailablePortHelper::getRandomAvailableTCPPort)
+        .limit(count)
+        .toArray();
   }
 
+  /**
+   * Returns the requested number of consecutive available tcp ports from the 
specified range.
+   */
   public static int[] getRandomAvailableTCPPortRange(final int count,
       final boolean useMembershipPortRange) {
-    List<Keeper> list =
-        getUniquePortRangeKeepers(useMembershipPortRange, AvailablePort.SOCKET,
-            count);
-    int[] ports = new int[list.size()];
-    int i = 0;
-    for (Keeper k : list) {
-      ports[i] = k.getPort();
-      k.release();
-      i++;
-    }
-    return ports;
-  }
-
-  public static List<Keeper> getRandomAvailableTCPPortRangeKeepers(final int 
count) {
-    return getRandomAvailableTCPPortRangeKeepers(count, false);
-  }
-
-  public static List<Keeper> getRandomAvailableTCPPortRangeKeepers(final int 
count,
-      final boolean useMembershipPortRange) {
-    return getUniquePortRangeKeepers(useMembershipPortRange, 
AvailablePort.SOCKET,
-        count);
-  }
+    AtomicInteger targetRange =
+        useMembershipPortRange ? singleton.nextMembershipPort : 
singleton.nextAvailablePort;
+    int targetLowerBound =
+        useMembershipPortRange ? DEFAULT_MEMBERSHIP_PORT_RANGE[0] : 
AVAILABLE_PORTS_LOWER_BOUND;
+    int targetUpperBound =
+        useMembershipPortRange ? DEFAULT_MEMBERSHIP_PORT_RANGE[1] : 
AVAILABLE_PORTS_UPPER_BOUND;
 
-  private static void releaseKeepers(List<Keeper> keepers) {
-    for (Keeper keeper : keepers) {
-      keeper.release();
-    }
-  }
+    int[] ports = new int[count];
+    boolean needMorePorts = true;
 
-  /**
-   * Returns array of unique randomly available tcp ports of specified count.
-   */
-  public static int[] getRandomAvailableTCPPortsForDUnitSite(int count) {
-    int site = 1;
-    String hostName = System.getProperty("hostName");
-    if (hostName != null && hostName.startsWith("host") && hostName.length() > 
4) {
-      site = Integer.parseInt(hostName.substring(4));
-    }
+    while (needMorePorts) {
+      int base = targetRange.getAndAdd(count);
+      if (base + count > targetUpperBound) {
+        targetRange.set(targetLowerBound);
+        continue;
+      }
 
-    int[] ports = new int[count];
-    int i = 0;
-    while (i < count) {
-      int port = getUniquePort(false, AvailablePort.SOCKET);
-      // This logic is from AvailablePort.getRandomAvailablePortWithMod which 
this method used to
-      // call. It seems like the check should be (port % FOO == site) for some 
FOO, but given how
-      // widely this is used, it's not at all clear that no one's depending on 
the current behavior.
-      while (port % site != 0) {
-        port = getUniquePort(false, AvailablePort.SOCKET);
+      needMorePorts = false; // Assume we'll find enough in this batch
+      for (int i = 0; i < count; i++) {
+        int port = base + i;
+        if (isPortAvailable(port, SOCKET, getAddress(SOCKET))) {
+          ports[i] = port;
+          continue;
+        }
+        needMorePorts = true;
+        break;
       }
-      ports[i] = port;
-      ++i;
     }
     return ports;
   }
 
-
-  /**
-   * Returns array of unique randomly available tcp ports of specified count.
-   */
-  public static int getRandomAvailablePortForDUnitSite() {
-    return getRandomAvailableTCPPortsForDUnitSite(1)[0];
-  }
-
-
-  /**
-   * Returns randomly available tcp port.
-   */
-  public static int getRandomAvailableTCPPort() {
-    return getRandomAvailableTCPPorts(1)[0];
-  }
-
   /**
-   * Returns array of unique randomly available udp ports of specified count.
+   * Returns the specified number of port keepers.
    */
-  private static int[] getRandomAvailableUDPPorts(int count) {
-    int[] ports = new int[count];
-    int i = 0;
-    while (i < count) {
-      ports[i] = getUniquePort(false, AvailablePort.MULTICAST);
-      ++i;
-    }
-    return ports;
+  public static List<Keeper> getRandomAvailableTCPPortKeepers(int count) {
+    return Stream.generate(AvailablePortHelper::availableKeeper)
+        .limit(count)
+        .collect(toList());
   }
 
   /**
-   * Returns randomly available udp port.
+   * Assign this JVM's next available membership and non-membership ports 
based on the given
+   * index. If each JVM on the machine calls this function with a small, 
distinct number, the
+   * algorithm:
+   * <ul>
+   * <li>Separates the JVMs' next available ports reasonably well</li>
+   * <li>Allows adding JVMs without needing to know the total number of JVMs 
ahead of time</li>
+   * </ul>
+   *
+   * @param jvmIndex a small number different from that of any other JVM 
running on this machine
    */
-  public static int getRandomAvailableUDPPort() {
-    return getRandomAvailableUDPPorts(1)[0];
-  }
-
-  public static void initializeUniquePortRange(int rangeNumber) {
-    if (rangeNumber < 0) {
+  public static void initializeUniquePortRange(int jvmIndex) {
+    if (jvmIndex < 0) {
       throw new RuntimeException("Range number cannot be negative.");
     }
-    singleton.currentMembershipPort.set(DEFAULT_MEMBERSHIP_PORT_RANGE[0]);
-    singleton.currentAvailablePort.set(AVAILABLE_PORTS_LOWER_BOUND);
-    if (rangeNumber != 0) {
-      // This code will generate starting points such that range 0 starts at 
the lowest possible
-      // value, range 1 starts halfway through the total available ports, 2 
starts 1/4 of the way
-      // through, then further ranges are 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, etc.
 
-      // This spaces the ranges out as much as possible for low numbers of 
ranges, while also making
-      // it possible to grow the number of ranges without bound (within some 
reasonable fraction of
-      // the number of available ports)
-      int membershipRange = DEFAULT_MEMBERSHIP_PORT_RANGE[1] - 
DEFAULT_MEMBERSHIP_PORT_RANGE[0];
-      int availableRange = AVAILABLE_PORTS_UPPER_BOUND - 
AVAILABLE_PORTS_LOWER_BOUND;
-      int numChunks = Integer.highestOneBit(rangeNumber) << 1;
-      int chunkNumber = 2 * (rangeNumber - Integer.highestOneBit(rangeNumber)) 
+ 1;
+    // Generate starting points such that JVM 0 starts at the lower bound of 
the total port
+    // range, JVM 1 starts halfway through, JVM 2 starts 1/4 of the way 
through, then further
+    // ranges are 3/4, 1/8, 3/8, 5/8, 7/8, 1/16, etc.
 
-      singleton.currentMembershipPort.addAndGet(chunkNumber * membershipRange 
/ numChunks);
-      singleton.currentAvailablePort.addAndGet(chunkNumber * availableRange / 
numChunks);
+    singleton.nextMembershipPort.set(DEFAULT_MEMBERSHIP_PORT_RANGE[0]);
+    singleton.nextAvailablePort.set(AVAILABLE_PORTS_LOWER_BOUND);
+    if (jvmIndex == 0) {
+      return;
     }
+    int membershipRange = DEFAULT_MEMBERSHIP_PORT_RANGE[1] - 
DEFAULT_MEMBERSHIP_PORT_RANGE[0];
+    int availableRange = AVAILABLE_PORTS_UPPER_BOUND - 
AVAILABLE_PORTS_LOWER_BOUND;
+    int numChunks = Integer.highestOneBit(jvmIndex) << 1;
+    int chunkNumber = 2 * (jvmIndex - Integer.highestOneBit(jvmIndex)) + 1;
+
+    singleton.nextMembershipPort.addAndGet(chunkNumber * membershipRange / 
numChunks);
+    singleton.nextAvailablePort.addAndGet(chunkNumber * availableRange / 
numChunks);
   }
 
-  /**
-   * Get keeper objects for the next unused, consecutive 'rangeSize' ports on 
this machine.
-   *
-   * @param useMembershipPortRange - if true, select ports from the
-   *        DistributionConfig.DEFAULT_MEMBERSHIP_PORT_RANGE
-   * @param protocol - either AvailablePort.SOCKET (TCP) or 
AvailablePort.MULTICAST (UDP)
-   * @param rangeSize - number of contiguous ports needed
-   * @return Keeper objects associated with a range of ports satisfying the 
request
-   */
-  private static List<Keeper> getUniquePortRangeKeepers(boolean 
useMembershipPortRange,
-      int protocol, int rangeSize) {
-    AtomicInteger targetRange =
-        useMembershipPortRange ? singleton.currentMembershipPort : 
singleton.currentAvailablePort;
-    int targetBound =
-        useMembershipPortRange ? DEFAULT_MEMBERSHIP_PORT_RANGE[1] : 
AVAILABLE_PORTS_UPPER_BOUND;
+  private static int availablePort(int protocol) {
+    AtomicInteger targetRange = singleton.nextAvailablePort;
 
     while (true) {
-      int uniquePort = targetRange.getAndAdd(rangeSize);
-      if (uniquePort + rangeSize > targetBound) {
-        targetRange.set(useMembershipPortRange ? 
DEFAULT_MEMBERSHIP_PORT_RANGE[0]
-            : AVAILABLE_PORTS_LOWER_BOUND);
+      int port = targetRange.getAndIncrement();
+      if (port > AVAILABLE_PORTS_UPPER_BOUND) {
+        targetRange.set(AVAILABLE_PORTS_LOWER_BOUND);
         continue;
       }
-      List<Keeper> keepers = new ArrayList<>();
-      int validPortsFound = 0;
-
-      while (validPortsFound < rangeSize) {
-        Keeper testKeeper =
-            AvailablePort.isPortKeepable(uniquePort++, protocol,
-                getAddress(protocol));
-        if (testKeeper == null) {
-          break;
-        }
-
-        keepers.add(testKeeper);
-        ++validPortsFound;
-      }
 
-      if (validPortsFound == rangeSize) {
-        return keepers;
+      if (isPortAvailable(port, protocol, getAddress(protocol))) {
+        return port;
       }
-
-      releaseKeepers(keepers);
     }
   }
 
-  private static Keeper getUniquePortKeeper(boolean useMembershipPortRange, 
int protocol) {
-    return getUniquePortRangeKeepers(useMembershipPortRange, protocol, 
1).get(0);
-  }
-
-  /**
-   * Get the next available port on this machine.
-   */
-  private static int getUniquePort(boolean useMembershipPortRange, int 
protocol) {
-    AtomicInteger targetRange =
-        useMembershipPortRange ? singleton.currentMembershipPort : 
singleton.currentAvailablePort;
-    int targetBound =
-        useMembershipPortRange ? DEFAULT_MEMBERSHIP_PORT_RANGE[1] : 
AVAILABLE_PORTS_UPPER_BOUND;
+  private static Keeper availableKeeper() {
+    int count = 1;
+    AtomicInteger targetRange = singleton.nextAvailablePort;
 
     while (true) {
       int uniquePort = targetRange.getAndIncrement();
-      if (uniquePort > targetBound) {
-        targetRange.set(useMembershipPortRange ? 
DEFAULT_MEMBERSHIP_PORT_RANGE[0]
-            : AVAILABLE_PORTS_LOWER_BOUND);
+      if (uniquePort + count > AVAILABLE_PORTS_UPPER_BOUND) {
+        targetRange.set(AVAILABLE_PORTS_LOWER_BOUND);
         continue;
       }
-
-      if (AvailablePort.isPortAvailable(uniquePort, protocol, 
getAddress(protocol))) {
-        return uniquePort;
+      Keeper keeper = isPortKeepable(uniquePort, SOCKET, getAddress(SOCKET));
+      if (keeper != null) {
+        return keeper;
       }
     }
   }
+
+  private static AtomicInteger randomInRange(Random rand, int lowerBound, int 
upperBound) {
+    return new AtomicInteger(rand.nextInt(upperBound - lowerBound) + 
lowerBound);
+  }
+
+  private static Random rand() {
+    boolean fast = Boolean.getBoolean("AvailablePort.fastRandom");
+    return fast ? new Random() : new java.security.SecureRandom();
+  }
 }
diff --git 
a/geode-redis/src/distributedTest/java/org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java
 
b/geode-redis/src/distributedTest/java/org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java
index c1c7c7a..409e2da 100644
--- 
a/geode-redis/src/distributedTest/java/org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java
+++ 
b/geode-redis/src/distributedTest/java/org/apache/geode/redis/GeodeRedisServerStartupDUnitTest.java
@@ -224,7 +224,7 @@ public class GeodeRedisServerStartupDUnitTest {
 
   @Test
   public void startupFailsGivenPortAlreadyInUse() throws Exception {
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
 
     addIgnoredException("Could not start Server");
     try (Socket interferingSocket = new Socket()) {
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/UpdateVersionDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/UpdateVersionDUnitTest.java
index b527a8a..c441639 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/UpdateVersionDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/UpdateVersionDUnitTest.java
@@ -535,7 +535,7 @@ public class UpdateVersionDUnitTest extends 
JUnit4DistributedTestCase {
 
   private Integer createFirstRemoteLocator(int dsId, int remoteLocPort) {
     UpdateVersionDUnitTest test = new UpdateVersionDUnitTest();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     Properties props = test.getDistributedSystemProperties();
     props.setProperty(MCAST_PORT, "0");
     props.setProperty(DISTRIBUTED_SYSTEM_ID, "" + dsId);
@@ -619,7 +619,7 @@ public class UpdateVersionDUnitTest extends 
JUnit4DistributedTestCase {
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     GatewayReceiver receiver = fact.create();
@@ -691,7 +691,7 @@ public class UpdateVersionDUnitTest extends 
JUnit4DistributedTestCase {
 
   private Integer createFirstLocatorWithDSId(int dsId) {
     UpdateVersionDUnitTest test = new UpdateVersionDUnitTest();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     Properties props = test.getDistributedSystemProperties();
     props.setProperty(MCAST_PORT, "0");
     props.setProperty(DISTRIBUTED_SYSTEM_ID, "" + dsId);
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
index 4b465e5..e0e439a 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/WANTestBase.java
@@ -314,7 +314,7 @@ public class WANTestBase extends DistributedTestCase {
   public static Integer createFirstLocatorWithDSId(int dsId) {
     stopOldLocator();
     WANTestBase test = new WANTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     test.startLocator(dsId, port, port, -1, true);
     return port;
   }
@@ -322,7 +322,7 @@ public class WANTestBase extends DistributedTestCase {
   public static Integer createFirstPeerLocator(int dsId) {
     stopOldLocator();
     WANTestBase test = new WANTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     test.startLocator(dsId, port, port, -1, false);
     return port;
   }
@@ -330,7 +330,7 @@ public class WANTestBase extends DistributedTestCase {
   public static Integer createSecondLocator(int dsId, int locatorPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     test.startLocator(dsId, locatorPort, port, -1, true);
     return port;
   }
@@ -338,7 +338,7 @@ public class WANTestBase extends DistributedTestCase {
   public static Integer createSecondPeerLocator(int dsId, int locatorPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     test.startLocator(dsId, locatorPort, port, -1, false);
     return port;
   }
@@ -346,7 +346,7 @@ public class WANTestBase extends DistributedTestCase {
   public static Integer createFirstRemoteLocator(int dsId, int remoteLocPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     test.startLocator(dsId, port, port, remoteLocPort, true);
     return port;
   }
@@ -360,7 +360,7 @@ public class WANTestBase extends DistributedTestCase {
   public static Integer createFirstRemotePeerLocator(int dsId, int 
remoteLocPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     test.startLocator(dsId, port, port, remoteLocPort, false);
     return port;
   }
@@ -368,7 +368,7 @@ public class WANTestBase extends DistributedTestCase {
   public static Integer createSecondRemoteLocator(int dsId, int localPort, int 
remoteLocPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     test.startLocator(dsId, localPort, port, remoteLocPort, true);
     return port;
   }
@@ -390,14 +390,14 @@ public class WANTestBase extends DistributedTestCase {
   public static Integer createSecondRemotePeerLocator(int dsId, int localPort, 
int remoteLocPort) {
     stopOldLocator();
     WANTestBase test = new WANTestBase();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     test.startLocator(dsId, localPort, port, remoteLocPort, false);
     return port;
   }
 
   public static int createReceiverInSecuredCache() {
     GatewayReceiverFactory fact = 
WANTestBase.cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     fact.setManualStart(true);
@@ -2038,7 +2038,7 @@ public class WANTestBase extends DistributedTestCase {
 
   public static int createReceiver() {
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     fact.setManualStart(true);
@@ -2080,7 +2080,7 @@ public class WANTestBase extends DistributedTestCase {
     InternalDistributedSystem ds = test.getSystem(gemFireProps);
     cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     fact.setManualStart(true);
@@ -2103,7 +2103,7 @@ public class WANTestBase extends DistributedTestCase {
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int receiverPort = 
AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int receiverPort = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(receiverPort);
     fact.setEndPort(receiverPort);
     fact.setManualStart(true);
@@ -2196,7 +2196,7 @@ public class WANTestBase extends DistributedTestCase {
     cache.createDiskStoreFactory().setDiskDirs(new File[] 
{pdxDir}).setMaxOplogSize(1)
         .create("pdxStore");
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     fact.setManualStart(true);
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/SenderWithTransportFilterDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/SenderWithTransportFilterDUnitTest.java
index 10d4c4b..04ef7bf 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/SenderWithTransportFilterDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/SenderWithTransportFilterDUnitTest.java
@@ -107,7 +107,7 @@ public class SenderWithTransportFilterDUnitTest extends 
WANTestBase {
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     ArrayList<GatewayTransportFilter> transportFilters = new 
ArrayList<GatewayTransportFilter>();
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WANLocatorServerDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WANLocatorServerDUnitTest.java
index 6f3ab50..7930f0e 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WANLocatorServerDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WANLocatorServerDUnitTest.java
@@ -58,11 +58,11 @@ public class WANLocatorServerDUnitTest extends WANTestBase {
   @Test
   public void test_3Locators_2Servers() {
 
-    int port1 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port1 = AvailablePortHelper.getRandomAvailableTCPPort();
 
-    int port2 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port2 = AvailablePortHelper.getRandomAvailableTCPPort();
 
-    int port3 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port3 = AvailablePortHelper.getRandomAvailableTCPPort();
 
     vm0.invoke(() -> WANLocatorServerDUnitTest.createLocator(port1, port2, 
port3, port1));
 
@@ -109,7 +109,7 @@ public class WANLocatorServerDUnitTest extends WANTestBase {
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     fact.setManualStart(true);
@@ -131,7 +131,7 @@ public class WANLocatorServerDUnitTest extends WANTestBase {
     InternalDistributedSystem ds = test.getSystem(props);
     cache = CacheFactory.create(ds);
     CacheServer server = cache.addCacheServer();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     server.setPort(port);
     try {
       server.start();
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
index 2950d95..1842dde 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WanAutoDiscoveryDUnitTest.java
@@ -62,7 +62,7 @@ public class WanAutoDiscoveryDUnitTest extends WANTestBase {
   @Test
   public void test_GatewaySender_Started_Before_Locator() {
     try {
-      int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+      int port = AvailablePortHelper.getRandomAvailableTCPPort();
       vm0.invoke(() -> WANTestBase.createCache(port));
       vm0.invoke(
           () -> WANTestBase.createSender("ln", 2, false, 100, 10, false, 
false, null, false));
@@ -341,7 +341,7 @@ public class WanAutoDiscoveryDUnitTest extends WANTestBase {
   @Test
   public void test_RingTopology() {
 
-    int[] ports = 
AvailablePortHelper.getRandomAvailableTCPPortsForDUnitSite(4);
+    int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(4);
 
     final Set<String> site1LocatorsPort = new HashSet<String>();
     site1LocatorsPort.add("localhost[" + ports[0] + "]");
@@ -397,27 +397,27 @@ public class WanAutoDiscoveryDUnitTest extends 
WANTestBase {
   @Test
   public void test_3Sites3Locators() {
     final Set<String> site1LocatorsPort = new HashSet<String>();
-    int site1Port1 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int site1Port1 = AvailablePortHelper.getRandomAvailableTCPPort();
     site1LocatorsPort.add("localhost[" + site1Port1 + "]");
-    int site1Port2 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int site1Port2 = AvailablePortHelper.getRandomAvailableTCPPort();
     site1LocatorsPort.add("localhost[" + site1Port2 + "]");
-    int site1Port3 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int site1Port3 = AvailablePortHelper.getRandomAvailableTCPPort();
     site1LocatorsPort.add("localhost[" + site1Port3 + "]");
 
     final Set<String> site2LocatorsPort = new HashSet<String>();
-    int site2Port1 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int site2Port1 = AvailablePortHelper.getRandomAvailableTCPPort();
     site2LocatorsPort.add("localhost[" + site2Port1 + "]");
-    int site2Port2 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int site2Port2 = AvailablePortHelper.getRandomAvailableTCPPort();
     site2LocatorsPort.add("localhost[" + site2Port2 + "]");
-    int site2Port3 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int site2Port3 = AvailablePortHelper.getRandomAvailableTCPPort();
     site2LocatorsPort.add("localhost[" + site2Port3 + "]");
 
     final Set<String> site3LocatorsPort = new HashSet<String>();
-    int site3Port1 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int site3Port1 = AvailablePortHelper.getRandomAvailableTCPPort();
     site3LocatorsPort.add("localhost[" + site3Port1 + "]");
-    final int site3Port2 = 
AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    final int site3Port2 = AvailablePortHelper.getRandomAvailableTCPPort();
     site3LocatorsPort.add("localhost[" + site3Port2 + "]");
-    int site3Port3 = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int site3Port3 = AvailablePortHelper.getRandomAvailableTCPPort();
     site3LocatorsPort.add("localhost[" + site3Port3 + "]");
 
     Map<Integer, Set<String>> dsVsPort = new HashMap<Integer, Set<String>>();
@@ -560,7 +560,7 @@ public class WanAutoDiscoveryDUnitTest extends WANTestBase {
     int activeThreadCountBefore = Thread.activeCount();
 
     // Start / stop locator
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     WANTestBase.createFirstRemoteLocator(2, port);
     disconnectFromDS();
 
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WanValidationsDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WanValidationsDUnitTest.java
index 806e46a..d3a1a07 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WanValidationsDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/misc/WanValidationsDUnitTest.java
@@ -1055,7 +1055,7 @@ public class WanValidationsDUnitTest extends WANTestBase {
       cache = new CacheFactory(props).create();
 
       GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-      int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+      int port = AvailablePortHelper.getRandomAvailableTCPPort();
       fact.setStartPort(port);
       fact.setEndPort(port);
       fact.setManualStart(true);
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
index ff5f0f5..2842e84 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/parallel/ParallelGatewaySenderOperationsDUnitTest.java
@@ -15,7 +15,7 @@
 package org.apache.geode.internal.cache.wan.parallel;
 
 import static 
org.apache.geode.distributed.internal.DistributionConfig.OFF_HEAP_MEMORY_SIZE_NAME;
-import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPortsForDUnitSite;
+import static 
org.apache.geode.internal.AvailablePortHelper.getRandomAvailableTCPPorts;
 import static 
org.apache.geode.internal.cache.tier.sockets.Message.MAX_MESSAGE_SIZE_PROPERTY;
 import static org.apache.geode.internal.util.ArrayUtils.asList;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
@@ -660,7 +660,7 @@ public class ParallelGatewaySenderOperationsDUnitTest 
extends WANTestBase {
     String site2SenderId = "site2-sender";
     String site3SenderId = "site3-sender";
     String regionName = testName.getMethodName();
-    int[] ports = getRandomAvailableTCPPortsForDUnitSite(3);
+    int[] ports = getRandomAvailableTCPPorts(3);
     int site1Port = ports[0];
     int site2Port = ports[1];
     int site3Port = ports[2];
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/GatewayReceiverDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/GatewayReceiverDUnitTest.java
index 2fa252a..964c744 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/GatewayReceiverDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/GatewayReceiverDUnitTest.java
@@ -229,7 +229,7 @@ public class GatewayReceiverDUnitTest extends WANTestBase {
 
   public static GatewayReceiver createAndReturnReceiver() {
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     fact.setManualStart(true);
@@ -246,7 +246,7 @@ public class GatewayReceiverDUnitTest extends WANTestBase {
 
   public static GatewayReceiver createAndReturnUnstartedReceiver() {
     GatewayReceiverFactory fact = cache.createGatewayReceiverFactory();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     fact.setStartPort(port);
     fact.setEndPort(port);
     fact.setManualStart(true);
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
index 1a364cc..2ca3208 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/SerialGatewaySenderEventListenerDUnitTest.java
@@ -56,7 +56,7 @@ public class SerialGatewaySenderEventListenerDUnitTest 
extends WANTestBase {
   @Ignore
   @Test
   public void testGatewaySenderEventListenerInvocationWithoutLocator() {
-    int mPort = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int mPort = AvailablePortHelper.getRandomAvailableTCPPort();
     vm4.invoke(() -> WANTestBase.createCacheWithoutLocator(mPort));
     vm5.invoke(() -> WANTestBase.createCacheWithoutLocator(mPort));
     vm6.invoke(() -> WANTestBase.createCacheWithoutLocator(mPort));
@@ -226,7 +226,7 @@ public class SerialGatewaySenderEventListenerDUnitTest 
extends WANTestBase {
   @Test
   public void testGatewaySenderEventListener_GatewayOperations() {
 
-    int mPort = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int mPort = AvailablePortHelper.getRandomAvailableTCPPort();
     vm4.invoke(() -> WANTestBase.createCacheWithoutLocator(mPort));
     vm5.invoke(() -> WANTestBase.createCacheWithoutLocator(mPort));
     vm6.invoke(() -> WANTestBase.createCacheWithoutLocator(mPort));
diff --git 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/WANHostNameVerificationDistributedTest.java
 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/WANHostNameVerificationDistributedTest.java
index 04ec3a4..5636789 100644
--- 
a/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/WANHostNameVerificationDistributedTest.java
+++ 
b/geode-wan/src/distributedTest/java/org/apache/geode/internal/cache/wan/serial/WANHostNameVerificationDistributedTest.java
@@ -157,7 +157,7 @@ public class WANHostNameVerificationDistributedTest {
   }
 
   private static void createGatewayReceiver() {
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     GatewayReceiverFactory gwReceiver = 
getCache().createGatewayReceiverFactory();
     gwReceiver.setStartPort(port);
     gwReceiver.setEndPort(port);
diff --git 
a/geode-wan/src/upgradeTest/java/org/apache/geode/cache/wan/WANRollingUpgradeDUnitTest.java
 
b/geode-wan/src/upgradeTest/java/org/apache/geode/cache/wan/WANRollingUpgradeDUnitTest.java
index d3153dd..22e5b31 100644
--- 
a/geode-wan/src/upgradeTest/java/org/apache/geode/cache/wan/WANRollingUpgradeDUnitTest.java
+++ 
b/geode-wan/src/upgradeTest/java/org/apache/geode/cache/wan/WANRollingUpgradeDUnitTest.java
@@ -261,7 +261,7 @@ public abstract class WANRollingUpgradeDUnitTest extends 
JUnit4CacheTestCase {
 
   private void addCacheServer() throws Exception {
     CacheServer server = getCache().addCacheServer();
-    int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite();
+    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     server.setPort(port);
     server.start();
   }

Reply via email to