[ONOS-6487] Catch and log exceptions that occur during replication in ECM
Change-Id: I27135677af1331f1782739adc7eeb517a623e119
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
index 41b6afd..97efec4 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/EventuallyConsistentMapImpl.java
@@ -922,15 +922,19 @@
items.forEach(item -> map.compute(item.key(), (key, existing) ->
item.isNewerThan(existing) ? item : existing));
communicationExecutor.execute(() -> {
- clusterCommunicator.unicast(ImmutableList.copyOf(map.values()),
- updateMessageSubject,
- serializer::encode,
- peer)
- .whenComplete((result, error) -> {
- if (error != null) {
- log.debug("Failed to send to {}", peer, error);
- }
- });
+ try {
+ clusterCommunicator.unicast(ImmutableList.copyOf(map.values()),
+ updateMessageSubject,
+ serializer::encode,
+ peer)
+ .whenComplete((result, error) -> {
+ if (error != null) {
+ log.debug("Failed to send to {}", peer, error);
+ }
+ });
+ } catch (Exception e) {
+ log.warn("Failed to send to {}", peer, e);
+ }
});
}
}