From d752aa7aa98aabe8544a80abd14dbeb1712fea80 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tibor=20Kr=C3=A1l?= Date: Thu, 4 Jun 2020 18:50:51 +0200 Subject: [PATCH] Add sender actor to the ForwardingDataTreeChangeListener MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The ForwardingDataTreeChangeListener is created when a shard registers new listener. It then sends dataTreeChanges to said listener but doesn't specify the sender. The RootListenerActor however needs to know which shard produced the DataTreeChanged message. Signed-off-by: Tibor Král Change-Id: I4971cfaefa10c3136e0ddcc350ec7e00e68e6b42 --- .../datastore/DataTreeChangeListenerSupport.java | 2 +- .../datastore/ForwardingDataTreeChangeListener.java | 12 ++++++++---- .../ForwardingDataTreeChangeListenerTest.java | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupport.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupport.java index 348b2aa939..09586b270b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupport.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupport.java @@ -37,7 +37,7 @@ final class DataTreeChangeListenerSupport extends LeaderLocalDelegateFactory changes) { LOG.debug("Sending DataTreeChanged to {}", actor); - actor.tell(new DataTreeChanged(changes), ActorRef.noSender()); + actor.tell(new DataTreeChanged(changes), sendingActor); } @Override public void onInitialData() { LOG.debug("Sending OnInitialData to {}", actor); - actor.tell(OnInitialData.INSTANCE, ActorRef.noSender()); + actor.tell(OnInitialData.INSTANCE, sendingActor); } @Override public String toString() { - return "ForwardingDataTreeChangeListener [actor=" + actor + "]"; + return "ForwardingDataTreeChangeListener [actor=" + actor + + ", sending actor=" + (sendingActor != null ? sendingActor : "NO_SENDER") + "]"; } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java index f9804c92e7..14a0c3af14 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java @@ -24,7 +24,7 @@ public class ForwardingDataTreeChangeListenerTest extends AbstractActorTest { final ActorRef actorRef = getSystem().actorOf(MessageCollectorActor.props()); ForwardingDataTreeChangeListener forwardingListener = new ForwardingDataTreeChangeListener( - getSystem().actorSelection(actorRef.path())); + getSystem().actorSelection(actorRef.path()), ActorRef.noSender()); Collection expected = Arrays.asList(Mockito.mock(DataTreeCandidate.class)); forwardingListener.onDataTreeChanged(expected); -- 2.36.6