X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2FChangeListenerNotifyTask.java;h=ac1f2e32d531dca0074290673d9399bb90074fd9;hb=26d0e25159bf3b73ca38a88e17268cf17f876d8d;hp=27325d84a9ddf3ecf11133ab2d55137477b3fe25;hpb=de3e413b633b7555ae8f3fe2ec163dbb7dda5da8;p=controller.git 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 27325d84a9..ac1f2e32d5 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 @@ -8,6 +8,8 @@ package org.opendaylight.controller.md.sal.dom.store.impl; 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; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.slf4j.Logger; @@ -16,31 +18,33 @@ 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; + + @SuppressWarnings("rawtypes") public ChangeListenerNotifyTask(final Iterable> listeners, - final AsyncDataChangeEvent> event) { + final AsyncDataChangeEvent> event, + final NotificationManager notificationMgr) { this.listeners = listeners; this.event = event; + this.notificationMgr = notificationMgr; } @Override public void run() { for (DataChangeListenerRegistration listener : listeners) { - try { - listener.getInstance().onDataChanged(event); - } catch (Exception e) { - LOG.error("Unhandled exception during invoking listener {} with event {}", listener, event, e); - } + notificationMgr.submitNotification(listener.getInstance(), event); } - } @Override public String toString() { return "ChangeListenerNotifyTask [listeners=" + listeners + ", event=" + event + "]"; } - }