From: Robert Varga Date: Tue, 30 Apr 2019 03:35:41 +0000 (+0200) Subject: Check registration being closed X-Git-Tag: v4.0.1~19 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=819aef314ba0fc931ca46c0f39d4f70ff49d3540;p=mdsal.git Check registration being closed Check if the registration has been closed before firing events. This way we stop delivering events a bit sooner, improving shutdown speed and correctness. JIRA: MDSAL-429 Change-Id: Id3ce6be0b8b15f4d95a3f54ac9880447a2551833 Signed-off-by: Robert Varga --- diff --git a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataTreeShardChangePublisher.java b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataTreeShardChangePublisher.java index a333033c90..ccbf366f86 100644 --- a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataTreeShardChangePublisher.java +++ b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataTreeShardChangePublisher.java @@ -34,8 +34,9 @@ final class InMemoryDOMDataTreeShardChangePublisher extends AbstractDOMShardTree final Map childShards) { super(dataTree, rootPath, childShards); notificationManager = QueuedNotificationManager.create(executor, (listener, notifications) -> { - // FIXME: we are not checking for listener being closed - listener.getInstance().onDataTreeChanged(notifications); + if (!listener.isClosed()) { + listener.getInstance().onDataTreeChanged(notifications); + } }, maxQueueSize, "DataTreeChangeListenerQueueMgr"); } diff --git a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMStoreTreeChangePublisher.java b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMStoreTreeChangePublisher.java index 60ca3ff209..fd4ff0ce2c 100644 --- a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMStoreTreeChangePublisher.java +++ b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMStoreTreeChangePublisher.java @@ -35,8 +35,9 @@ final class InMemoryDOMStoreTreeChangePublisher extends AbstractDOMStoreTreeChan InMemoryDOMStoreTreeChangePublisher(final ExecutorService listenerExecutor, final int maxQueueSize) { notificationManager = QueuedNotificationManager.create(listenerExecutor, (listener, notifications) -> { - // FIXME: we are not checking for listener being closed - listener.getInstance().onDataTreeChanged(notifications); + if (!listener.isClosed()) { + listener.getInstance().onDataTreeChanged(notifications); + } }, maxQueueSize, "DataTreeChangeListenerQueueMgr"); }