Bug 7521: Convert DatastoreSnapshot.ShardSnapshot to store Snapshot
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / actors / ShardSnapshotActor.java
index e7529fb4bfcf3b9f1003fce0c03ae26fd943c3a6..4796e1c37f466cb4c2c94c281dbcc4ab0275b47c 100644 (file)
@@ -11,14 +11,13 @@ import akka.actor.ActorRef;
 import akka.actor.Props;
 import com.google.common.base.Preconditions;
 import java.io.IOException;
+import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 import java.util.Optional;
 import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActorWithMetering;
 import org.opendaylight.controller.cluster.datastore.persisted.ShardDataTreeSnapshot;
 import org.opendaylight.controller.cluster.datastore.persisted.ShardSnapshotState;
 import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshotReply;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * This is an offload actor, which is given an isolated snapshot of the data tree. It performs the potentially
@@ -27,8 +26,6 @@ import org.slf4j.LoggerFactory;
  * @author Robert Varga
  */
 public final class ShardSnapshotActor extends AbstractUntypedActorWithMetering {
-    private static final Logger LOG = LoggerFactory.getLogger(ShardSnapshotActor.class);
-
     // Internal message
     private static final class SerializeSnapshot {
         private final ShardDataTreeSnapshot snapshot;
@@ -71,11 +68,11 @@ public final class ShardSnapshotActor extends AbstractUntypedActorWithMetering {
         }
     }
 
-    private void onSerializeSnapshot(SerializeSnapshot request) {
+    private void onSerializeSnapshot(final SerializeSnapshot request) {
         Optional<OutputStream> installSnapshotStream = request.getInstallSnapshotStream();
         if (installSnapshotStream.isPresent()) {
-            try {
-                request.getSnapshot().serialize(installSnapshotStream.get());
+            try (ObjectOutputStream out = new ObjectOutputStream(installSnapshotStream.get())) {
+                request.getSnapshot().serialize(out);
             } catch (IOException e) {
                 // TODO - we should communicate the failure in the CaptureSnapshotReply.
                 LOG.error("Error serializing snapshot", e);