X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2FChangeListenerNotifyTask.java;h=536cfa00813aa5afa2681371b25c2b20cdc45ffc;hp=ac1f2e32d531dca0074290673d9399bb90074fd9;hb=d0bf270d0493c04ac2e9e4a9f7de56e5b65a4ef2;hpb=62ee81f764eef592f00e67181b4dbedb3f734de6 diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ChangeListenerNotifyTask.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ChangeListenerNotifyTask.java index ac1f2e32d5..536cfa0081 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ChangeListenerNotifyTask.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ChangeListenerNotifyTask.java @@ -7,6 +7,8 @@ */ package org.opendaylight.controller.md.sal.dom.store.impl; +import com.google.common.base.Preconditions; + import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; import org.opendaylight.yangtools.util.concurrent.NotificationManager; @@ -16,35 +18,37 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; class ChangeListenerNotifyTask implements Runnable { - private static final Logger LOG = LoggerFactory.getLogger(ChangeListenerNotifyTask.class); - private final Iterable> listeners; - private final AsyncDataChangeEvent> event; - @SuppressWarnings("rawtypes") - private final NotificationManager - notificationMgr; + private final NotificationManager notificationMgr; + private final AsyncDataChangeEvent> event; + private final DataChangeListenerRegistration listener; @SuppressWarnings("rawtypes") - public ChangeListenerNotifyTask(final Iterable> listeners, + public ChangeListenerNotifyTask(final DataChangeListenerRegistration listener, final AsyncDataChangeEvent> event, final NotificationManager notificationMgr) { - this.listeners = listeners; - this.event = event; - this.notificationMgr = notificationMgr; + this.notificationMgr = Preconditions.checkNotNull(notificationMgr); + this.listener = Preconditions.checkNotNull(listener); + this.event = Preconditions.checkNotNull(event); } @Override public void run() { - - for (DataChangeListenerRegistration listener : listeners) { - notificationMgr.submitNotification(listener.getInstance(), event); + final AsyncDataChangeListener> l = listener.getInstance(); + if (l == null) { + LOG.trace("Skipping event delivery to unregistered listener {}", l); + return; } + LOG.trace("Listener {} event {}", l, event); + + // FIXME: Yo dawg I heard you like queues, so this was queued to be queued + notificationMgr.submitNotification(l, event); } @Override public String toString() { - return "ChangeListenerNotifyTask [listeners=" + listeners + ", event=" + event + "]"; + return "ChangeListenerNotifyTask [listener=" + listener + ", event=" + event + "]"; } }