Kryo related fixes
- KryoNamespace to allow control over registration id
Change-Id: Idc2a0e27a09916657c725ee97e4366109144cc66
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/cluster/messaging/impl/ClusterCommunicationManager.java b/core/store/dist/src/main/java/org/onlab/onos/store/cluster/messaging/impl/ClusterCommunicationManager.java
index 70aeeed..8ff3392 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/cluster/messaging/impl/ClusterCommunicationManager.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/cluster/messaging/impl/ClusterCommunicationManager.java
@@ -34,7 +34,6 @@
import org.onlab.onos.cluster.ClusterService;
import org.onlab.onos.cluster.ControllerNode;
import org.onlab.onos.cluster.NodeId;
-import org.onlab.onos.store.cluster.impl.ClusterMembershipEvent;
import org.onlab.onos.store.cluster.messaging.ClusterCommunicationService;
import org.onlab.onos.store.cluster.messaging.ClusterMessage;
import org.onlab.onos.store.cluster.messaging.ClusterMessageHandler;
@@ -67,12 +66,10 @@
protected void setupKryoPool() {
serializerPool = KryoNamespace.newBuilder()
.register(KryoNamespaces.API)
- .register(ClusterMessage.class, new ClusterMessageSerializer())
- .register(ClusterMembershipEvent.class)
- .register(byte[].class)
- .register(MessageSubject.class, new MessageSubjectSerializer())
- .build()
- .populate(1);
+ .nextId(KryoNamespaces.BEGIN_USER_CUSTOM_ID)
+ .register(new ClusterMessageSerializer(), ClusterMessage.class)
+ .register(new MessageSubjectSerializer(), MessageSubject.class)
+ .build();
}
};
@@ -194,11 +191,17 @@
@Override
public void handle(Message message) {
+ final ClusterMessage clusterMessage;
try {
- ClusterMessage clusterMessage = SERIALIZER.decode(message.payload());
+ clusterMessage = SERIALIZER.decode(message.payload());
+ } catch (Exception e) {
+ log.error("Failed decoding ClusterMessage", e);
+ throw e;
+ }
+ try {
handler.handle(new InternalClusterMessage(clusterMessage, message));
} catch (Exception e) {
- log.error("Exception caught during ClusterMessageHandler", e);
+ log.error("Exception caught handling {}", clusterMessage, e);
throw e;
}
}