Add protection in portmapping connection-map loop
[transportpce.git] / common / src / main / java / org / opendaylight / transportpce / common / mapping / PortMappingVersion121.java
index f96f5125a30f257e5a172a2fe1a79bfef1a73968..70e9e98d97ec0597cb71d3db8dec45af86b2a3f6 100644 (file)
@@ -291,10 +291,11 @@ public class PortMappingVersion121 {
                 }
             }
         }
+
         Collection<ConnectionMap> connectionMap = deviceObject.get().nonnullConnectionMap().values();
-        String slcp = null;
-        String dlcp = null;
         for (ConnectionMap cm : connectionMap) {
+            String slcp = null;
+            String dlcp = null;
             String skey = cm.getSource().getCircuitPackName() + "+" + cm.getSource().getPortName();
             if (lcpMap.containsKey(skey)) {
                 slcp = lcpMap.get(skey);
@@ -304,14 +305,16 @@ public class PortMappingVersion121 {
             if (lcpMap.containsKey(dkey)) {
                 dlcp = lcpMap.get(dkey);
             }
-            if (slcp != null) {
-                Mapping mapping = mappingMap.get(slcp);
-                mappingMap.remove(slcp);
-                portMapList.add(createXpdrMappingObject(nodeId, null, null, null, null, mapping, dlcp));
-            } else {
-                LOG.error("Error in connection-map analysis");
+            if (slcp == null) {
+                LOG.error("Error in connection-map analysis for source {} and destination (circuitpack+port) {}",
+                    skey, dkey);
+                continue;
             }
+            Mapping mapping = mappingMap.get(slcp);
+            mappingMap.remove(slcp);
+            portMapList.add(createXpdrMappingObject(nodeId, null, null, null, null, mapping, dlcp));
         }
+
         if (!mappingMap.isEmpty()) {
             for (Mapping m : mappingMap.values()) {
                 portMapList.add(m);