Fix followerDistributedDataStore tear down
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / shardmanager / ShardManagerGetSnapshotReplyActor.java
index c474cf89fc8ee6cf8f35f91b43189a13d332824c..42ed9d09d89294d4cb645c46068c3ae2d4cb65b3 100644 (file)
@@ -12,7 +12,7 @@ import akka.actor.PoisonPill;
 import akka.actor.Props;
 import akka.actor.ReceiveTimeout;
 import akka.actor.Status.Failure;
-import akka.actor.UntypedActor;
+import akka.actor.UntypedAbstractActor;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
@@ -26,7 +26,7 @@ import org.opendaylight.controller.cluster.datastore.persisted.ShardManagerSnaps
 import org.opendaylight.controller.cluster.raft.client.messages.GetSnapshotReply;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import scala.concurrent.duration.Duration;
+import scala.concurrent.duration.FiniteDuration;
 
 /**
  * Temporary actor used by the ShardManager to compile GetSnapshot replies from the Shard actors and return
@@ -34,14 +34,14 @@ import scala.concurrent.duration.Duration;
  *
  * @author Thomas Pantelis
  */
-class ShardManagerGetSnapshotReplyActor extends UntypedActor {
+final class ShardManagerGetSnapshotReplyActor extends UntypedAbstractActor {
     private static final Logger LOG = LoggerFactory.getLogger(ShardManagerGetSnapshotReplyActor.class);
 
     private final Set<String> remainingShardNames;
     private final Params params;
     private final List<ShardSnapshot> shardSnapshots = new ArrayList<>();
 
-    private ShardManagerGetSnapshotReplyActor(Params params) {
+    private ShardManagerGetSnapshotReplyActor(final Params params) {
         this.params = params;
         remainingShardNames = new HashSet<>(params.shardNames);
 
@@ -51,7 +51,7 @@ class ShardManagerGetSnapshotReplyActor extends UntypedActor {
     }
 
     @Override
-    public void onReceive(Object message) {
+    public void onReceive(final Object message) {
         if (message instanceof GetSnapshotReply) {
             onGetSnapshotReply((GetSnapshotReply)message);
         } else if (message instanceof Failure) {
@@ -60,17 +60,18 @@ class ShardManagerGetSnapshotReplyActor extends UntypedActor {
             params.replyToActor.tell(message, getSelf());
             getSelf().tell(PoisonPill.getInstance(), getSelf());
         } else if (message instanceof ReceiveTimeout) {
-            String msg = String.format(
-                    "Timed out after %s ms while waiting for snapshot replies from %d shard(s). %d shard(s) %s "
-                    + "did not respond.", params.receiveTimeout.toMillis(), params.shardNames.size(),
-                    remainingShardNames.size(), remainingShardNames);
-            LOG.warn("{}: {}", params.id, msg);
-            params.replyToActor.tell(new Failure(new TimeoutException(msg)), getSelf());
+            LOG.warn("{}: Timed out after {} ms while waiting for snapshot replies from {} shard(s). "
+                + "{} shard(s) {} did not respond", params.id, params.receiveTimeout.toMillis(),
+                params.shardNames.size(), remainingShardNames.size(), remainingShardNames);
+            params.replyToActor.tell(new Failure(new TimeoutException(String.format(
+                "Timed out after %s ms while waiting for snapshot replies from %d shard(s). %d shard(s) %s "
+                + "did not respond.", params.receiveTimeout.toMillis(), params.shardNames.size(),
+                remainingShardNames.size(), remainingShardNames))), getSelf());
             getSelf().tell(PoisonPill.getInstance(), getSelf());
         }
     }
 
-    private void onGetSnapshotReply(GetSnapshotReply getSnapshotReply) {
+    private void onGetSnapshotReply(final GetSnapshotReply getSnapshotReply) {
         LOG.debug("{}: Received {}", params.id, getSnapshotReply);
 
         ShardIdentifier shardId = ShardIdentifier.fromShardIdString(getSnapshotReply.getId());
@@ -87,8 +88,9 @@ class ShardManagerGetSnapshotReplyActor extends UntypedActor {
         }
     }
 
-    public static Props props(Collection<String> shardNames, String datastoreType,
-            ShardManagerSnapshot shardManagerSnapshot, ActorRef replyToActor, String id, Duration receiveTimeout) {
+    public static Props props(final Collection<String> shardNames, final String datastoreType,
+            final ShardManagerSnapshot shardManagerSnapshot, final ActorRef replyToActor, final String id,
+            final FiniteDuration receiveTimeout) {
         return Props.create(ShardManagerGetSnapshotReplyActor.class, new Params(shardNames, datastoreType,
                 shardManagerSnapshot, replyToActor, id, receiveTimeout));
     }
@@ -99,10 +101,11 @@ class ShardManagerGetSnapshotReplyActor extends UntypedActor {
         final ShardManagerSnapshot shardManagerSnapshot;
         final ActorRef replyToActor;
         final String id;
-        final Duration receiveTimeout;
+        final FiniteDuration receiveTimeout;
 
-        Params(Collection<String> shardNames, String datastoreType, ShardManagerSnapshot shardManagerSnapshot,
-                ActorRef replyToActor, String id, Duration receiveTimeout) {
+        Params(final Collection<String> shardNames, final String datastoreType,
+                final ShardManagerSnapshot shardManagerSnapshot, final ActorRef replyToActor, final String id,
+                final FiniteDuration receiveTimeout) {
             this.shardNames = shardNames;
             this.datastoreType = datastoreType;
             this.shardManagerSnapshot = shardManagerSnapshot;