From bb9c06e6b99d93d135bd4c97b45cf2ffe6fbe9f2 Mon Sep 17 00:00:00 2001 From: "guillaume.lambert" Date: Tue, 2 Apr 2024 08:47:32 +0200 Subject: [PATCH] Fix TAPI utils listener DOM iteration bug Signed-off-by: guillaume.lambert Change-Id: Iea27acae0a57d7c7b47f984b66cb3ddaadc30d82 --- .../transportpce/tapi/utils/TapiListener.java | 39 +++++++++---------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/tapi/src/main/java/org/opendaylight/transportpce/tapi/utils/TapiListener.java b/tapi/src/main/java/org/opendaylight/transportpce/tapi/utils/TapiListener.java index c1c5c9722..1a3521661 100644 --- a/tapi/src/main/java/org/opendaylight/transportpce/tapi/utils/TapiListener.java +++ b/tapi/src/main/java/org/opendaylight/transportpce/tapi/utils/TapiListener.java @@ -7,7 +7,6 @@ */ package org.opendaylight.transportpce.tapi.utils; -import java.util.Iterator; import java.util.List; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.DataObjectModification; @@ -22,6 +21,9 @@ import org.slf4j.LoggerFactory; public class TapiListener implements DataTreeChangeListener { private static final Logger LOG = LoggerFactory.getLogger(TapiListener.class); + private static final String SE_JAVA_INTF = + "interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.tapi.rev180928" + + ".service._interface.points.ServiceEndPoint"; @Override public void onDataTreeChanged(@NonNull List> changes) { @@ -39,28 +41,23 @@ public class TapiListener implements DataTreeChangeListener> iterator = - rootSIP.getModifiedChildren(ServiceEndPoint.class).iterator(); - if (!iterator.hasNext()) { - break; - } - DataObjectModification dom = iterator.next(); - // to delete existing child entry - DataObject dataAfter = dom.dataAfter(); - if (dataAfter == null) { - MappingUtils.deleteMapEntry(((ServiceEndPoint) dom.dataBefore()).getUuid()); + for (DataObjectModification dom : + rootSIP.getModifiedChildren(ServiceEndPoint.class)) { + // to delete existing child entry + DataObject dataAfter = dom.dataAfter(); + if (dataAfter == null) { + MappingUtils.deleteMapEntry(((ServiceEndPoint) dom.dataBefore()).getUuid()); + MappingUtils.afficheMap(); + continue; + } + // to add new child entry + if (dom.dataBefore() != null || dom.dataType().toString().compareTo(SE_JAVA_INTF) != 0) { + LOG.error("data input type is not a valid 'service-end-point'"); + continue; + } + MappingUtils.addMapSEP((ServiceEndPoint) dataAfter); MappingUtils.afficheMap(); - break; - } - // to add new child entry - if (dom.dataBefore() != null || dom.dataType().toString().compareTo( - "interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.tapi.rev180928" - + ".service._interface.points.ServiceEndPoint") != 0) { - LOG.error("data input type is not a valid 'service-end-point'"); - break; } - MappingUtils.addMapSEP((ServiceEndPoint) dataAfter); - MappingUtils.afficheMap(); break; case DELETE: LOG.info("onDataTreeChanged in TapiListener : DELETE"); -- 2.36.6