bugfix: should notify merged description
Change-Id: I3f3658bef36ca9e90f796050abfb641e4cf8540d
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/link/impl/GossipLinkStore.java b/core/store/dist/src/main/java/org/onlab/onos/store/link/impl/GossipLinkStore.java
index 2e15a8f..52b23ce 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/link/impl/GossipLinkStore.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/link/impl/GossipLinkStore.java
@@ -237,14 +237,20 @@
final Timestamped<LinkDescription> deltaDesc = new Timestamped<>(linkDescription, newTimestamp);
- LinkEvent event = createOrUpdateLinkInternal(providerId, deltaDesc);
+ LinkKey key = new LinkKey(linkDescription.src(), linkDescription.dst());
+ final LinkEvent event;
+ final Timestamped<LinkDescription> mergedDesc;
+ synchronized (getLinkDescriptions(key)) {
+ event = createOrUpdateLinkInternal(providerId, deltaDesc);
+ mergedDesc = getLinkDescriptions(key).get(providerId);
+ }
if (event != null) {
log.info("Notifying peers of a link update topology event from providerId: "
+ "{} between src: {} and dst: {}",
providerId, linkDescription.src(), linkDescription.dst());
try {
- notifyPeers(new InternalLinkEvent(providerId, deltaDesc));
+ notifyPeers(new InternalLinkEvent(providerId, mergedDesc));
} catch (IOException e) {
log.info("Failed to notify peers of a link update topology event from providerId: "
+ "{} between src: {} and dst: {}",