Implementation for StorageAdmin and PartitionAdmin APIs

Change-Id: I48cbfae6f410425294196884cdb2ce4705fa2c3d
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultCatalystTypeSerializerFactory.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultCatalystTypeSerializerFactory.java
index 47bd5b9..6c709ce 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultCatalystTypeSerializerFactory.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultCatalystTypeSerializerFactory.java
@@ -15,7 +15,12 @@
  */
 package org.onosproject.store.primitives.impl;
 
+import static org.slf4j.LoggerFactory.getLogger;
+
 import org.onosproject.store.service.Serializer;
+import org.slf4j.Logger;
+
+import com.google.common.base.Throwables;
 
 import io.atomix.catalyst.buffer.BufferInput;
 import io.atomix.catalyst.buffer.BufferOutput;
@@ -28,6 +33,7 @@
  */
 public class DefaultCatalystTypeSerializerFactory implements TypeSerializerFactory {
 
+    private final Logger log = getLogger(getClass());
     private final TypeSerializer<?> typeSerializer;
 
     public DefaultCatalystTypeSerializerFactory(Serializer serializer) {
@@ -53,15 +59,25 @@
             int size = input.readInt();
             byte[] payload = new byte[size];
             input.read(payload);
-            return this.serializer.decode(payload);
+            try {
+                return this.serializer.decode(payload);
+            } catch (Exception e) {
+                log.warn("Failed to deserialize as type {}", clazz, e);
+                Throwables.propagate(e);
+                return null;
+            }
         }
 
         @Override
         public void write(T object, BufferOutput<?> output,
                           io.atomix.catalyst.serializer.Serializer serializer) {
-            byte[] payload = this.serializer.encode(object);
-            output.writeInt(payload.length);
-            output.write(payload);
+            try {
+                byte[] payload = this.serializer.encode(object);
+                output.writeInt(payload.length);
+                output.write(payload);
+            } catch (Exception e) {
+                log.warn("Failed to serialize {}", object, e);
+            }
         }
     }
 }