summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Malkiewicz <jan.malkiewicz@nokia.com>2021-01-08 14:28:15 +0100
committerVasyl Razinkov <vasyl.razinkov@est.tech>2021-01-11 10:25:30 +0000
commit69712c820f5ed9345f0f788f8dea4ae16f5f5f00 (patch)
treebd4e9fe6660d9ccb9fcb8b2e48492d954c3377ef
parent1eeee67f4e115e70ddb6ad62b1446fa6ff6f48a9 (diff)
Fix NPE
Fix NPE during the onboarding of a helm package. NPE was thrown in HeatTreeManager.handleOrphans(): * tree.getHeat()::contains Issue-ID: SDC-3185 Signed-off-by: Jan Malkiewicz <jan.malkiewicz@nokia.com> Change-Id: I9e0461cfe18705b6fb53ae318e473bd4e2651305
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java3
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/structure/HeatStructureTree.java22
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerTest.java1
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/out/expectedTree.json14
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/out/expectedTree.json24
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/out/expectedTree.json22
6 files changed, 59 insertions, 27 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java
index 6b1493f001..14eba87154 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/tree/HeatTreeManagerTest.java
@@ -1,5 +1,6 @@
/*
* Copyright © 2016-2018 European Support Limited
+ * Modifications Copyright (C) 2021 Nokia
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -67,7 +68,7 @@ public class HeatTreeManagerTest extends TreeBaseTest {
heatTreeManager.addErrors(errorMap);
HeatStructureTree tree = heatTreeManager.getTree();
Assert.assertNotNull(tree);
- Assert.assertNull(tree.getHeat());
+ Assert.assertTrue(tree.getHeat().isEmpty());
}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/structure/HeatStructureTree.java b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/structure/HeatStructureTree.java
index a65db6f2ea..93eb7c649d 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/structure/HeatStructureTree.java
+++ b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/datatypes/structure/HeatStructureTree.java
@@ -4,6 +4,8 @@
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
* ================================================================================
+ * Modifications Copyright (C) 2021 Nokia
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -24,7 +26,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
-
import lombok.AccessLevel;
import lombok.Data;
import lombok.Getter;
@@ -53,9 +54,11 @@ public class HeatStructureTree implements Comparable<HeatStructureTree> {
private Set<HeatStructureTree> helm;
public HeatStructureTree() {
+ heat = new TreeSet<>();
}
public HeatStructureTree(String fileName, boolean isBase) {
+ this();
this.isBase = isBase;
this.fileName = fileName;
}
@@ -76,7 +79,7 @@ public class HeatStructureTree implements Comparable<HeatStructureTree> {
* @return the heat structure tree by name
*/
public static HeatStructureTree getHeatStructureTreeByName(Set<HeatStructureTree> filesSet,
- String filename) {
+ String filename) {
for (HeatStructureTree heatStructureTree : filesSet) {
if (heatStructureTree.getFileName().equals(filename)) {
return heatStructureTree;
@@ -166,7 +169,7 @@ public class HeatStructureTree implements Comparable<HeatStructureTree> {
this.other.add(other);
}
- public void addToHelmList(HeatStructureTree helm){
+ public void addToHelmList(HeatStructureTree helm) {
if (this.helm == null) {
this.helm = new TreeSet<>();
}
@@ -198,7 +201,7 @@ public class HeatStructureTree implements Comparable<HeatStructureTree> {
*/
public void removeFromVolumeOrNetwork(String fileNameToRemove, FileData.Type type) {
Set<HeatStructureTree> volumeOrNetworkSet =
- type.equals(FileData.Type.HEAT_VOL) ? this.volume : this.network;
+ type.equals(FileData.Type.HEAT_VOL) ? this.volume : this.network;
HeatStructureTree toRemove = getHeatStructureTreeByName(volumeOrNetworkSet, fileNameToRemove);
volumeOrNetworkSet.remove(toRemove);
@@ -215,7 +218,6 @@ public class HeatStructureTree implements Comparable<HeatStructureTree> {
result1 = 31 * result1 + (nested != null ? nested.hashCode() : 0);
result1 = 31 * result1 + (errors != null ? errors.hashCode() : 0);
-
return result1;
}
@@ -231,7 +233,7 @@ public class HeatStructureTree implements Comparable<HeatStructureTree> {
HeatStructureTree heatStructureTree = (HeatStructureTree) other;
if (fileName != null ? !fileName.equals(heatStructureTree.fileName)
- : heatStructureTree.fileName != null) {
+ : heatStructureTree.fileName != null) {
return false;
}
if (env != null ? !env.equals(heatStructureTree.env) : heatStructureTree.env != null) {
@@ -241,19 +243,19 @@ public class HeatStructureTree implements Comparable<HeatStructureTree> {
return false;
}
if (volume != null ? !volume.equals(heatStructureTree.volume)
- : heatStructureTree.volume != null) {
+ : heatStructureTree.volume != null) {
return false;
}
if (network != null ? !network.equals(heatStructureTree.network)
- : heatStructureTree.network != null) {
+ : heatStructureTree.network != null) {
return false;
}
if (artifacts != null ? !artifacts.equals(heatStructureTree.artifacts)
- : heatStructureTree.artifacts != null) {
+ : heatStructureTree.artifacts != null) {
return false;
}
if (nested != null ? !nested.equals(heatStructureTree.nested)
- : heatStructureTree.nested != null) {
+ : heatStructureTree.nested != null) {
return false;
}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerTest.java b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerTest.java
index e3e19792f5..0ff4bddfe7 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerTest.java
+++ b/openecomp-be/lib/openecomp-heat-lib/src/test/java/org/openecomp/sdc/heat/services/tree/HeatTreeManagerTest.java
@@ -1,6 +1,7 @@
/*
*
* Copyright © 2017-2018 European Support Limited
+ * Modifications Copyright (C) 2021 Nokia
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/out/expectedTree.json b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/out/expectedTree.json
index 4be1e1ddeb..de6026192c 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/out/expectedTree.json
+++ b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/diffFileNames/out/expectedTree.json
@@ -1,23 +1,29 @@
{
+ "heat": [],
"nested": [
{
"fileName": "TOSCA-Metadata",
+ "heat": [],
"nested": [
{
- "fileName": "TOSCA.meta"
+ "fileName": "TOSCA.meta",
+ "heat": []
}
]
},
{
- "fileName": "MainServiceTemplate.yaml"
+ "fileName": "MainServiceTemplate.yaml",
+ "heat": []
},
{
"fileName": "Definitions",
+ "heat": [],
"nested": [
{
- "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml"
+ "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml",
+ "heat": []
}
]
}
]
-} \ No newline at end of file
+}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/out/expectedTree.json b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/out/expectedTree.json
index 071887b2fb..c6e5cded6f 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/out/expectedTree.json
+++ b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/similarDirectoryName/out/expectedTree.json
@@ -1,43 +1,55 @@
{
+ "heat": [],
"nested": [
{
"fileName": "TOSCA-Metadata",
+ "heat": [],
"nested": [
{
- "fileName": "TOSCA.meta"
+ "fileName": "TOSCA.meta",
+ "heat": []
}
]
},
{
- "fileName": "MainServiceTemplate.yaml"
+ "fileName": "MainServiceTemplate.yaml",
+ "heat": []
},
{
"fileName": "Definitions",
+ "heat": [],
"nested": [
{
- "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml"
+ "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml",
+ "heat": []
}
]
},
{
"fileName": "Artifacts",
+ "heat": [],
"nested": [
{
"fileName": "OTHER",
+ "heat": [],
"nested": [
{
- "fileName": "clearWaterIMSOTHER.zip"
+ "fileName": "clearWaterIMSOTHER.zip",
+ "heat": []
}
]
},
{
"fileName": "Deployment",
+ "heat": [],
"nested": [
{
"fileName": "OTHER",
+ "heat": [],
"nested": [
{
- "fileName": "clearWaterIMSOTHERDEPLOYMENT.zip"
+ "fileName": "clearWaterIMSOTHERDEPLOYMENT.zip",
+ "heat": []
}
]
}
@@ -46,4 +58,4 @@
]
}
]
-} \ No newline at end of file
+}
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/out/expectedTree.json b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/out/expectedTree.json
index 59fec70152..c73b6b9e7e 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/out/expectedTree.json
+++ b/openecomp-be/lib/openecomp-heat-lib/src/test/resources/mock/toscaTree/twoFilesUnderSameDirectory/out/expectedTree.json
@@ -1,39 +1,49 @@
{
+ "heat": [],
"nested": [
{
"fileName": "TOSCA-Metadata",
+ "heat": [],
"nested": [
{
- "fileName": "TOSCA.meta"
+ "fileName": "TOSCA.meta",
+ "heat": []
}
]
},
{
- "fileName": "MainServiceTemplate.yaml"
+ "fileName": "MainServiceTemplate.yaml",
+ "heat": []
},
{
"fileName": "Definitions",
+ "heat": [],
"nested": [
{
- "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml"
+ "fileName": "GlobalSubstitutionTypesServiceTemplate.yaml",
+ "heat": []
}
]
},
{
"fileName": "Artifacts",
+ "heat": [],
"nested": [
{
"fileName": "OTHER",
+ "heat": [],
"nested": [
{
- "fileName": "clearWaterIMSOTHERDEPLOYMENT.zip"
+ "fileName": "clearWaterIMSOTHERDEPLOYMENT.zip",
+ "heat": []
},
{
- "fileName": "clearWaterIMSOTHER.zip"
+ "fileName": "clearWaterIMSOTHER.zip",
+ "heat": []
}
]
}
]
}
]
-} \ No newline at end of file
+}