Repository: activemq-artemis
Updated Branches:
  refs/heads/master 9a5a3d496 -> 6d8e89df9


ARTEMIS-1484 Live's topology update may be ignored

If the current node has no connector to Live, it is better
to update it from older message than to have none.


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/84fb07be
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/84fb07be
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/84fb07be

Branch: refs/heads/master
Commit: 84fb07be53b28dd17688bd1a7f81b51bdc4570b9
Parents: 9a5a3d4
Author: Erich Duda <dudaer...@gmail.com>
Authored: Thu Oct 26 15:36:24 2017 +0200
Committer: Erich Duda <dudaer...@gmail.com>
Committed: Fri Oct 27 10:48:33 2017 +0200

----------------------------------------------------------------------
 .../apache/activemq/artemis/core/client/impl/Topology.java  | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/84fb07be/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/Topology.java
----------------------------------------------------------------------
diff --git 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/Topology.java
 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/Topology.java
index 096fd66..966167f 100644
--- 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/Topology.java
+++ 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/Topology.java
@@ -202,7 +202,7 @@ public final class Topology {
             sendMemberUp(nodeId, memberInput);
             return true;
          }
-         if (uniqueEventID > currentMember.getUniqueEventID()) {
+         if (uniqueEventID > currentMember.getUniqueEventID() || 
(currentMember.getLive() == null && memberInput.getLive() != null)) {
             TopologyMemberImpl newMember = new TopologyMemberImpl(nodeId, 
memberInput.getBackupGroupName(), memberInput.getScaleDownGroupName(), 
memberInput.getLive(), memberInput.getBackup());
 
             if (newMember.getLive() == null && currentMember.getLive() != 
null) {
@@ -219,7 +219,12 @@ public final class Topology {
                                newMember, new Exception("trace"));
             }
 
-            newMember.setUniqueEventID(uniqueEventID);
+            if (uniqueEventID > currentMember.getUniqueEventID()) {
+               newMember.setUniqueEventID(uniqueEventID);
+            } else {
+               newMember.setUniqueEventID(currentMember.getUniqueEventID());
+            }
+
             topology.remove(nodeId);
             topology.put(nodeId, newMember);
             sendMemberUp(nodeId, newMember);

Reply via email to