X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FDOMNotificationRouterEvent.java;h=a1d5faee7ccd113953448db7da8001766c443692;hp=65c7166ac97c2eebf82e9ebaba85c17368319bcf;hb=2d60632f7cf63712e8357a3cf3fc40d83366e5e6;hpb=bfd413d87f82ee3ffed67a141a980805950a0f06 diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMNotificationRouterEvent.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMNotificationRouterEvent.java index 65c7166ac9..a1d5faee7c 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMNotificationRouterEvent.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMNotificationRouterEvent.java @@ -15,18 +15,16 @@ import java.util.Collection; import org.opendaylight.controller.md.sal.dom.api.DOMNotification; import org.opendaylight.controller.md.sal.dom.api.DOMNotificationListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * A single notification event in the disruptor ringbuffer. These objects are reused, * so they do have mutable state. */ final class DOMNotificationRouterEvent { - public static final EventFactory FACTORY = new EventFactory() { - @Override - public DOMNotificationRouterEvent newInstance() { - return new DOMNotificationRouterEvent(); - } - }; + private static final Logger LOG = LoggerFactory.getLogger(DOMNotificationRouterEvent.class); + public static final EventFactory FACTORY = DOMNotificationRouterEvent::new; private Collection> subscribers; private DOMNotification notification; @@ -36,7 +34,10 @@ final class DOMNotificationRouterEvent { // Hidden on purpose, initialized in initialize() } - ListenableFuture initialize(final DOMNotification notification, final Collection> subscribers) { + @SuppressWarnings("checkstyle:hiddenField") + ListenableFuture initialize(final DOMNotification notification, + final Collection> + subscribers) { this.notification = Preconditions.checkNotNull(notification); this.subscribers = Preconditions.checkNotNull(subscribers); this.future = SettableFuture.create(); @@ -44,16 +45,22 @@ final class DOMNotificationRouterEvent { } void deliverNotification() { + LOG.trace("Start delivery of notification {}", notification); for (ListenerRegistration r : subscribers) { - final DOMNotificationListener l = r.getInstance(); - if (l != null) { - l.onNotification(notification); + final DOMNotificationListener listener = r.getInstance(); + if (listener != null) { + LOG.trace("Notifying listener {}", listener); + listener.onNotification(notification); + LOG.trace("Listener notification completed"); } } + LOG.trace("Delivery completed"); } void setFuture() { future.set(null); + notification = null; + subscribers = null; + future = null; } - } \ No newline at end of file