bugfix: should notify merged description
Change-Id: I3f3658bef36ca9e90f796050abfb641e4cf8540d
Showing
1 changed file
with
8 additions
and
2 deletions
... | @@ -237,14 +237,20 @@ public class GossipLinkStore | ... | @@ -237,14 +237,20 @@ public class GossipLinkStore |
237 | 237 | ||
238 | final Timestamped<LinkDescription> deltaDesc = new Timestamped<>(linkDescription, newTimestamp); | 238 | final Timestamped<LinkDescription> deltaDesc = new Timestamped<>(linkDescription, newTimestamp); |
239 | 239 | ||
240 | - LinkEvent event = createOrUpdateLinkInternal(providerId, deltaDesc); | 240 | + LinkKey key = new LinkKey(linkDescription.src(), linkDescription.dst()); |
241 | + final LinkEvent event; | ||
242 | + final Timestamped<LinkDescription> mergedDesc; | ||
243 | + synchronized (getLinkDescriptions(key)) { | ||
244 | + event = createOrUpdateLinkInternal(providerId, deltaDesc); | ||
245 | + mergedDesc = getLinkDescriptions(key).get(providerId); | ||
246 | + } | ||
241 | 247 | ||
242 | if (event != null) { | 248 | if (event != null) { |
243 | log.info("Notifying peers of a link update topology event from providerId: " | 249 | log.info("Notifying peers of a link update topology event from providerId: " |
244 | + "{} between src: {} and dst: {}", | 250 | + "{} between src: {} and dst: {}", |
245 | providerId, linkDescription.src(), linkDescription.dst()); | 251 | providerId, linkDescription.src(), linkDescription.dst()); |
246 | try { | 252 | try { |
247 | - notifyPeers(new InternalLinkEvent(providerId, deltaDesc)); | 253 | + notifyPeers(new InternalLinkEvent(providerId, mergedDesc)); |
248 | } catch (IOException e) { | 254 | } catch (IOException e) { |
249 | log.info("Failed to notify peers of a link update topology event from providerId: " | 255 | log.info("Failed to notify peers of a link update topology event from providerId: " |
250 | + "{} between src: {} and dst: {}", | 256 | + "{} between src: {} and dst: {}", | ... | ... |
-
Please register or login to post a comment