From: mark.j.leonard Date: Wed, 5 Dec 2018 18:59:58 +0000 (+0000) Subject: Add null check for Group member with no A&AI Model X-Git-Tag: 1.4.1~48 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fbabel.git;a=commitdiff_plain;h=0babe59ef157c1d767bce05cf0bebc12d962d1e0 Add null check for Group member with no A&AI Model Protect against a Null Pointer Exception when any member of an Instance Group cannot be mapped to an output XML Resource or Widget. Change-Id: Icf099686681b8dffb86e9f003bd92ace6e8679b1 Issue-ID: AAI-1991 Signed-off-by: mark.j.leonard --- diff --git a/src/main/java/org/onap/aai/babel/parser/ArtifactGeneratorToscaParser.java b/src/main/java/org/onap/aai/babel/parser/ArtifactGeneratorToscaParser.java index cae0324..615ad1e 100644 --- a/src/main/java/org/onap/aai/babel/parser/ArtifactGeneratorToscaParser.java +++ b/src/main/java/org/onap/aai/babel/parser/ArtifactGeneratorToscaParser.java @@ -307,18 +307,28 @@ public class ArtifactGeneratorToscaParser { */ private List generateResourcesAndWidgets(final ArrayList memberNodes, final Resource groupModel) { + log.debug(String.format("Processing member nodes for Group %s (invariant UUID %s)", // + groupModel.getModelName(), groupModel.getModelId())); + List resources = new ArrayList<>(); + for (NodeTemplate nodeTemplate : memberNodes) { String nodeTypeName = normaliseNodeTypeName(nodeTemplate); - Model memberModel = Model.getModelFor(nodeTypeName, nodeTemplate.getMetaData().getValue("type")); - memberModel.populateModelIdentificationInformation(nodeTemplate.getMetaData().getAllProperties()); + final String metadataType = nodeTemplate.getMetaData().getValue("type"); + + log.debug(String.format("Get model for %s (metadata type %s)", nodeTypeName, metadataType)); + Model memberModel = Model.getModelFor(nodeTypeName, metadataType); - log.debug(String.format("Generating grouped %s (%s) from TOSCA type %s", - memberModel.getClass().getSuperclass().getSimpleName(), memberModel.getClass(), nodeTypeName)); + if (memberModel != null) { + memberModel.populateModelIdentificationInformation(nodeTemplate.getMetaData().getAllProperties()); - addRelatedModel(groupModel, memberModel); - if (memberModel instanceof Resource) { - resources.add((Resource) memberModel); + log.debug(String.format("Generating grouped %s (%s) from TOSCA type %s", + memberModel.getClass().getSuperclass().getSimpleName(), memberModel.getClass(), nodeTypeName)); + + addRelatedModel(groupModel, memberModel); + if (memberModel instanceof Resource) { + resources.add((Resource) memberModel); + } } } return resources; @@ -384,7 +394,7 @@ public class ArtifactGeneratorToscaParser { * @param resourceModel * parent Resource * @param metaData - * metadata for populating the Resource IDs + * for populating the Resource IDs * @param resourceNode * any Model (will be ignored if not a Resource) * @param nodeProperties