From 89c1b043b274f3f3ede6598ff14890aac5afc970 Mon Sep 17 00:00:00 2001 From: nabarun Date: Wed, 6 Jul 2016 16:34:03 -0700 Subject: [PATCH] GEODE-1639: Receivers selects a different port if the selected port is in use. * If the selected port is in use then the receiver will select another port between 20001 and 29999 --- .../gemstone/gemfire/internal/AvailablePort.java | 7 ++++--- .../cache/wan/wancommand/WANCommandTestBase.java | 16 ++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/geode-core/src/main/java/com/gemstone/gemfire/internal/AvailablePort.java b/geode-core/src/main/java/com/gemstone/gemfire/internal/AvailablePort.java index 95ca22b38e4c..5fa826fab66f 100644 --- a/geode-core/src/main/java/com/gemstone/gemfire/internal/AvailablePort.java +++ b/geode-core/src/main/java/com/gemstone/gemfire/internal/AvailablePort.java @@ -33,7 +33,8 @@ public class AvailablePort { /** Is the port available for a Socket (TCP) connection? */ public static final int SOCKET = 0; - + public static final int AVAILABLE_PORTS_LOWER_BOUND = 20001;// 20000/udp is securid + public static final int AVAILABLE_PORTS_UPPER_BOUND = 29999;//30000/tcp is spoolfax /** Is the port available for a JGroups (UDP) multicast connection */ public static final int MULTICAST = 1; @@ -434,8 +435,8 @@ private static int getRandomWildcardBindPortNumber() { // rangeBase=1024; // rangeTop=5000; // } - rangeBase = 20001; // 20000/udp is securid - rangeTop = 29999; // 30000/tcp is spoolfax + rangeBase = AVAILABLE_PORTS_LOWER_BOUND; // 20000/udp is securid + rangeTop = AVAILABLE_PORTS_UPPER_BOUND; // 30000/tcp is spoolfax return rand.nextInt(rangeTop-rangeBase) + rangeBase; } diff --git a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/wancommand/WANCommandTestBase.java b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/wancommand/WANCommandTestBase.java index af72ed18a9f1..ec38b31965ea 100644 --- a/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/wancommand/WANCommandTestBase.java +++ b/geode-wan/src/test/java/com/gemstone/gemfire/internal/cache/wan/wancommand/WANCommandTestBase.java @@ -25,6 +25,7 @@ import com.gemstone.gemfire.distributed.DistributedMember; import com.gemstone.gemfire.distributed.Locator; import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem; +import com.gemstone.gemfire.internal.AvailablePort; import com.gemstone.gemfire.internal.AvailablePortHelper; import com.gemstone.gemfire.internal.cache.wan.AbstractGatewaySender; import com.gemstone.gemfire.management.ManagementService; @@ -230,12 +231,11 @@ public int createReceiver(int locPort) { InternalDistributedSystem ds = getSystem(props); cache = CacheFactory.create(ds); GatewayReceiverFactory fact = cache.createGatewayReceiverFactory(); - int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite(); - fact.setStartPort(port); - fact.setEndPort(port); + fact.setStartPort(AvailablePort.AVAILABLE_PORTS_LOWER_BOUND); + fact.setEndPort(AvailablePort.AVAILABLE_PORTS_UPPER_BOUND); fact.setManualStart(true); GatewayReceiver receiver = fact.create(); - return port; + return receiver.getPort(); } public int createReceiverWithGroup(int locPort, String groups) { @@ -248,12 +248,12 @@ public int createReceiverWithGroup(int locPort, String groups) { InternalDistributedSystem ds = getSystem(props); cache = CacheFactory.create(ds); GatewayReceiverFactory fact = cache.createGatewayReceiverFactory(); - int port = AvailablePortHelper.getRandomAvailablePortForDUnitSite(); - fact.setStartPort(port); - fact.setEndPort(port); + fact.setStartPort(AvailablePort.AVAILABLE_PORTS_LOWER_BOUND); + fact.setEndPort(AvailablePort.AVAILABLE_PORTS_UPPER_BOUND); fact.setManualStart(true); GatewayReceiver receiver = fact.create(); - return port; + return receiver.getPort(); + } public void startReceiver() {