Fix ClassCastException in import 85/130285/1
authorMichaelMorris <michael.morris@est.tech>
Mon, 15 Aug 2022 16:14:13 +0000 (17:14 +0100)
committerMichaelMorris <michael.morris@est.tech>
Mon, 15 Aug 2022 16:17:17 +0000 (17:17 +0100)
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-4133
Change-Id: Ic7ac38dac39ed9b962691390818e18b753f9378e

catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java

index ee31112..01b6259 100644 (file)
@@ -1255,31 +1255,37 @@ public class YamlTemplateParsingHandler {
         final ArtifactDataDefinition artifactDataDefinition = new ArtifactDataDefinition();
         if (operationDefinitionMap.get(IMPLEMENTATION.getElementName()) instanceof Map &&
                 ((Map)operationDefinitionMap.get(IMPLEMENTATION.getElementName())).containsKey("primary")) {
-            Map<String, Object> implDetails = (Map) ((Map)operationDefinitionMap.get(IMPLEMENTATION.getElementName())).get("primary");
-
-            if (implDetails.get("file") != null) {
-                final String file = implDetails.get("file").toString();
-                artifactDataDefinition.setArtifactName(generateArtifactName(file));
-            }
-            if (implDetails.get("type") != null) {
-                artifactDataDefinition.setArtifactType(implDetails.get("type").toString());
-            }
-            if (implDetails.get("artifact_version") != null) {
-                artifactDataDefinition.setArtifactVersion(implDetails.get("artifact_version").toString());
-            }
+            
+            final Object primary = ((Map)operationDefinitionMap.get(IMPLEMENTATION.getElementName())).get("primary");
+            if(primary instanceof Map) {
+                Map<String, Object> implDetails = (Map) primary;
+
+                if (implDetails.get("file") != null) {
+                    final String file = implDetails.get("file").toString();
+                    artifactDataDefinition.setArtifactName(generateArtifactName(file));
+                }
+                if (implDetails.get("type") != null) {
+                    artifactDataDefinition.setArtifactType(implDetails.get("type").toString());
+                }
+                if (implDetails.get("artifact_version") != null) {
+                    artifactDataDefinition.setArtifactVersion(implDetails.get("artifact_version").toString());
+                }
 
-            if(implDetails.get("properties") instanceof Map) {
-                List<PropertyDataDefinition> operationProperties = artifactDataDefinition.getProperties() == null ? new ArrayList<>() : artifactDataDefinition.getProperties();
-                Map<String, Object> properties = (Map<String, Object>) implDetails.get("properties");
-                properties.forEach((k,v) -> {
-                    ToscaPropertyType type = getTypeFromObject(v);
-                    if (type != null) {
-                        PropertyDataDefinition propertyDef = new PropertyDataDefinition();
-                        propertyDef.setName(k);
-                        propertyDef.setValue(v.toString());
-                        artifactDataDefinition.addProperty(propertyDef);
-                    }
-                });
+                if(implDetails.get("properties") instanceof Map) {
+                    List<PropertyDataDefinition> operationProperties = artifactDataDefinition.getProperties() == null ? new ArrayList<>() : artifactDataDefinition.getProperties();
+                    Map<String, Object> properties = (Map<String, Object>) implDetails.get("properties");
+                    properties.forEach((k,v) -> {
+                        ToscaPropertyType type = getTypeFromObject(v);
+                        if (type != null) {
+                            PropertyDataDefinition propertyDef = new PropertyDataDefinition();
+                            propertyDef.setName(k);
+                            propertyDef.setValue(v.toString());
+                            artifactDataDefinition.addProperty(propertyDef);
+                        }
+                    });
+                }
+            } else {
+                artifactDataDefinition.setArtifactName(generateArtifactName(primary.toString()));
             }
         }
         if (operationDefinitionMap.get(IMPLEMENTATION.getElementName()) instanceof String) {