From 3b1d84ac048bd057a5497a2d0243cba675980781 Mon Sep 17 00:00:00 2001 From: kissand Date: Wed, 15 Jun 2022 13:48:07 +0200 Subject: Quick fix for performance degradation bug Issue-ID: CPS-1085 Change-Id: I15715ef37909d4e2fe2f1f80e621a21c8037fbd0 Signed-off-by: kissand --- .../api/impl/NetworkCmProxyCmHandlerQueryServiceImpl.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'cps-ncmp-service/src/main/java/org') diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyCmHandlerQueryServiceImpl.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyCmHandlerQueryServiceImpl.java index 00cbe69f5..3deaa7d23 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyCmHandlerQueryServiceImpl.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyCmHandlerQueryServiceImpl.java @@ -31,6 +31,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.onap.cps.ncmp.api.NetworkCmProxyCmHandlerQueryService; @@ -126,17 +127,19 @@ public class NetworkCmProxyCmHandlerQueryServiceImpl implements NetworkCmProxyCm final Map amalgamatedQueryResults) { boolean firstQuery = true; if (!getModuleNames(cmHandleQueryServiceParameters.getCmHandleQueryParameters()).isEmpty()) { - final Collection anchors = cpsAdminPersistenceService.queryAnchors("NFP-Operational", - getModuleNames(cmHandleQueryServiceParameters.getCmHandleQueryParameters())); - anchors.forEach(anchor -> { - final List dataNodes = getDataNodes("//cm-handles[@id='" + anchor.getName() + "']"); - dataNodes.parallelStream().forEach(dataNode -> { + final Collection anchorNames = cpsAdminPersistenceService.queryAnchors("NFP-Operational", + getModuleNames(cmHandleQueryServiceParameters.getCmHandleQueryParameters())) + .parallelStream().map(Anchor::getName).collect(Collectors.toList()); + + getAllCmHandles().forEach(dataNode -> { + if (anchorNames.contains(dataNode.getLeaves().get("id").toString())) { final DataNodeIdentifier dataNodeIdentifier = jsonObjectMapper.convertToValueType(dataNode, DataNodeIdentifier.class); amalgamatedQueryResultIdentifiers.add(dataNodeIdentifier); amalgamatedQueryResults.put(dataNodeIdentifier, dataNode); - }); + } }); + firstQuery = false; } return firstQuery; -- cgit 1.2.3-korg