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 <robert.varga@pantheon.tech>
final Map<DOMDataTreeIdentifier, ChildShardContext> 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");
}
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");
}