Publish a list of changes when leadership changes occur
Change-Id: I99a4e239ac5aa9999b3a735cdf004941a5957a93
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorState.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorState.java
index ef8c444..0621042 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorState.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorState.java
@@ -97,7 +97,7 @@
}
private void notifyLeadershipChange(Leadership previousLeadership, Leadership newLeadership) {
- notifyLeadershipChanges(Arrays.asList(new Change<>(previousLeadership, newLeadership)));
+ notifyLeadershipChanges(Lists.newArrayList(new Change<>(previousLeadership, newLeadership)));
}
private void notifyLeadershipChanges(List<Change<Leadership>> changes) {
@@ -247,7 +247,7 @@
*/
public void evict(Commit<? extends Evict> commit) {
try {
- List<Change<Leadership>> changes = Lists.newLinkedList();
+ List<Change<Leadership>> changes = Lists.newArrayList();
NodeId nodeId = commit.operation().nodeId();
Set<String> topics = Maps.filterValues(elections, e -> e.candidates().contains(nodeId)).keySet();
topics.forEach(topic -> {
@@ -330,14 +330,16 @@
listener.close();
}
Set<String> topics = elections.keySet();
+ List<Change<Leadership>> changes = Lists.newArrayList();
topics.forEach(topic -> {
Leadership oldLeadership = leadership(topic);
elections.compute(topic, (k, v) -> v.cleanup(session, termCounter(topic)::incrementAndGet));
Leadership newLeadership = leadership(topic);
if (!Objects.equal(oldLeadership, newLeadership)) {
- notifyLeadershipChange(oldLeadership, newLeadership);
+ changes.add(new Change<>(oldLeadership, newLeadership));
}
});
+ notifyLeadershipChanges(changes);
}
private static class Registration {