BUG-8056: make doCommit/finishCommit package-private
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / DataTreeChangeListenerRegistrationActor.java
index 7d0117f8e18083d75e0dc20b304561919ad23509..17deeeb4dc261cbe1c1c3e0e07e7b61f0259668c 100644 (file)
@@ -11,6 +11,7 @@ import akka.actor.PoisonPill;
 import akka.actor.Props;
 import akka.japi.Creator;
 import com.google.common.base.Preconditions;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor;
 import org.opendaylight.controller.cluster.datastore.messages.CloseDataTreeChangeListenerRegistration;
 import org.opendaylight.controller.cluster.datastore.messages.CloseDataTreeChangeListenerRegistrationReply;
@@ -32,8 +33,13 @@ public final class DataTreeChangeListenerRegistrationActor extends AbstractUntyp
     protected void handleReceive(Object message) throws Exception {
         if (message instanceof CloseDataTreeChangeListenerRegistration) {
             registration.close();
-            getSender().tell(CloseDataTreeChangeListenerRegistrationReply.getInstance(), getSelf());
+            if (isValidSender(getSender())) {
+                getSender().tell(CloseDataTreeChangeListenerRegistrationReply.getInstance(), getSelf());
+            }
+
             getSelf().tell(PoisonPill.getInstance(), getSelf());
+        } else {
+            unknownMessage(message);
         }
     }
 
@@ -41,8 +47,12 @@ public final class DataTreeChangeListenerRegistrationActor extends AbstractUntyp
         return Props.create(new DataTreeChangeListenerRegistrationCreator(registration));
     }
 
-    private static final class DataTreeChangeListenerRegistrationCreator implements Creator<DataTreeChangeListenerRegistrationActor> {
+    private static final class DataTreeChangeListenerRegistrationCreator
+            implements Creator<DataTreeChangeListenerRegistrationActor> {
         private static final long serialVersionUID = 1L;
+
+        @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "This field is not Serializable but we don't "
+                + "create remote instances of this actor and thus don't need it to be Serializable.")
         final ListenerRegistration<DOMDataTreeChangeListener> registration;
 
         DataTreeChangeListenerRegistrationCreator(ListenerRegistration<DOMDataTreeChangeListener> registration) {