Fix NPE in disconnect path 60/90460/3
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 16 Jun 2020 16:23:04 +0000 (18:23 +0200)
committerChetan Arakere Gowdru <chetan.arakere@altencalsoftlabs.com>
Tue, 23 Jun 2020 05:31:09 +0000 (05:31 +0000)
We should not be touching instance identifier if the node does
not exist in connection manager. Fixes the following splat:

java.lang.NullPointerException: null
at org.opendaylight.ovsdb.southbound.OvsdbDataTreeChangeListener.disconnect(OvsdbDataTreeChangeListener.java:151) ~[bundleFile:?]
at org.opendaylight.ovsdb.southbound.OvsdbDataTreeChangeListener.onDataTreeChanged(OvsdbDataTreeChangeListener.java:103) ~[bundleFile:?]
at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:37) ~[bundleFile:?]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataTreeChanged(DataTreeChangeListenerActor.java:83) [bundleFile:?]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:44) [bundleFile:?]

Change-Id: Ibabc7f5324742fce04bc6f02b54a1ead945b15cb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListener.java

index 1d7e0a774644131fd2932954d24f58b4b46ab128..d8a524019073225d7125ff1f8e27a0d5702d250b 100644 (file)
@@ -148,7 +148,9 @@ public class OvsdbDataTreeChangeListener implements ClusteredDataTreeChangeListe
                         try {
                             cm.disconnect(ovsdbNode);
                             LOG.info("OVSDB node has been disconnected:{}", ovsdbNode);
-                            cm.stopConnectionReconciliationIfActive(iid.firstIdentifierOf(Node.class), ovsdbNode);
+                            if (iid != null) {
+                                cm.stopConnectionReconciliationIfActive(iid.firstIdentifierOf(Node.class), ovsdbNode);
+                            }
                         } catch (UnknownHostException e) {
                             LOG.warn("Failed to disconnect ovsdbNode", e);
                         }