Prevent serialization errors from causing recursion in the Copycat transport
Change-Id: I0a1b0737d6cda3d7ab63bb26a7547d2f9124a434
diff --git a/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java b/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
index fae957a..f3b028c 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/cluster/messaging/impl/NettyMessagingManager.java
@@ -303,6 +303,7 @@
try {
responsePayload = handler.apply(message.sender(), message.payload());
} catch (Exception e) {
+ log.debug("An error occurred in a message handler: {}", e);
status = Status.ERROR_HANDLER_EXCEPTION;
}
sendReply(message, status, Optional.ofNullable(responsePayload));
@@ -314,7 +315,13 @@
checkPermission(CLUSTER_WRITE);
handlers.put(type, message -> {
handler.apply(message.sender(), message.payload()).whenComplete((result, error) -> {
- Status status = error == null ? Status.OK : Status.ERROR_HANDLER_EXCEPTION;
+ Status status;
+ if (error == null) {
+ status = Status.OK;
+ } else {
+ log.debug("An error occurred in a message handler: {}", error);
+ status = Status.ERROR_HANDLER_EXCEPTION;
+ }
sendReply(message, status, Optional.ofNullable(result));
});
});