Do not fail if invoking of listener fails
[mdsal.git] / dom / mdsal-dom-broker / src / main / java / org / opendaylight / mdsal / dom / broker / DOMMountPointServiceImpl.java
index 6f2775a58dba18765edf9c62badc6a66b5eae8a6..80c8bc13c46c3e1d27f1a35d352a8397a54c8a1f 100644 (file)
@@ -68,13 +68,20 @@ public class DOMMountPointServiceImpl implements DOMMountPointService {
         return doRegisterMountPoint((SimpleDOMMountPoint) mountPoint);
     }
 
+    @SuppressWarnings("checkstyle:IllegalCatch")
     private ObjectRegistration<DOMMountPoint> doRegisterMountPoint(final SimpleDOMMountPoint mountPoint) {
         final YangInstanceIdentifier mountPointId = mountPoint.getIdentifier();
         synchronized (mountPoints) {
             final DOMMountPoint prev = mountPoints.putIfAbsent(mountPointId, mountPoint);
             checkState(prev == null, "Mount point %s already exists as %s", mountPointId, prev);
         }
-        listeners.forEach(listener -> listener.getInstance().onMountPointCreated(mountPointId));
+        listeners.forEach(listener -> {
+            try {
+                listener.getInstance().onMountPointCreated(mountPointId);
+            } catch (final Exception ex) {
+                LOG.error("Listener {} failed on mount point {} created event", listener, mountPoint, ex);
+            }
+        });
 
         return new AbstractObjectRegistration<DOMMountPoint>(mountPoint) {
             @Override
@@ -98,6 +105,7 @@ public class DOMMountPointServiceImpl implements DOMMountPointService {
         doUnregisterMountPoint(mountPointId);
     }
 
+    @SuppressWarnings("checkstyle:IllegalCatch")
     private void doUnregisterMountPoint(final YangInstanceIdentifier mountPointId) {
         synchronized (mountPoints) {
             if (mountPoints.remove(mountPointId) == null) {
@@ -106,7 +114,13 @@ public class DOMMountPointServiceImpl implements DOMMountPointService {
             }
         }
 
-        listeners.forEach(listener -> listener.getInstance().onMountPointRemoved(mountPointId));
+        listeners.forEach(listener -> {
+            try {
+                listener.getInstance().onMountPointRemoved(mountPointId);
+            } catch (final Exception ex) {
+                LOG.error("Listener {} failed on mount point {} removed event", listener, mountPointId, ex);
+            }
+        });
     }
 
     final class DOMMountPointBuilderImpl implements DOMMountPointBuilder {