bschuchardt commented on a change in pull request #6013:
URL: https://github.com/apache/geode/pull/6013#discussion_r577811878



##########
File path: 
geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorHelper.java
##########
@@ -46,13 +47,42 @@ public static boolean addLocator(int distributedSystemId, 
DistributionLocatorId
     Set<DistributionLocatorId> existingValue =
         allLocatorsInfo.putIfAbsent(distributedSystemId, locatorsSet);
     if (existingValue != null) {
-      if (!existingValue.contains(locator)) {
+      if (!locator.getMemberName().equals(DistributionConfig.DEFAULT_NAME)) {
+        DistributionLocatorId existingLocator =
+            getLocatorWithSameMemberName(existingValue, locator);
+
+        if (existingLocator != null) {
+          // if locator with same name exist, check did all parameters are same
+          if (!locator.detailCompare(existingLocator)) {
+            // some parameters had changed for existing locator
+            // replace it
+            existingValue.remove(existingLocator);
+            ConcurrentHashMap<Integer, Set<String>> allServerLocatorsInfo =
+                (ConcurrentHashMap<Integer, Set<String>>) locatorListener
+                    .getAllServerLocatorsInfo();
+            Set<String> alllocators = 
allServerLocatorsInfo.get(distributedSystemId);
+            alllocators.remove(existingLocator.toString());
+            existingValue.add(locator);
+            addServerLocator(distributedSystemId, locatorListener, locator);
+            locatorListener.locatorJoined(distributedSystemId, locator, 
sourceLocator);
+            return true;
+          }
+          return false;
+        }
         existingValue.add(locator);

Review comment:
       hmm, I see what you mean Mario.  The membername field is new, but to be 
consistent we should invoke the listener in case it cares about that new field. 
 Hold off on making that change while I look into Lynn's failures further.  
Thanks for your patience.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to