summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuanHu <yuan.hu1@zte.com.cn>2016-10-12 14:57:20 +0800
committerhuangjian <huang.jian12@zte.com.cn>2016-10-13 14:13:12 +0800
commitad79f406675cd448eb3c661dd771d3c594824327 (patch)
treee9882e2c215a7329a5e4dad8dbca4c542bbdd26b
parentc3f0d4c37d759e86f45d1f77a5a17ea71a711ea5 (diff)
Protected of NullPointerException while convert json string to java Object.
When call zte parser api. Issue-id: TOSCA-108 Change-Id: I430a018f787b8c413b625dbd4a07b79f87ab0ef7 Signed-off-by: YuanHu <yuan.hu1@zte.com.cn>
-rw-r--r--catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/common/ToolUtil.java13
-rw-r--r--catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/model/parser/yaml/zte/entity/ParseYamlResult.java29
2 files changed, 29 insertions, 13 deletions
diff --git a/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/common/ToolUtil.java b/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/common/ToolUtil.java
index dae083a0..576cade3 100644
--- a/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/common/ToolUtil.java
+++ b/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/common/ToolUtil.java
@@ -16,6 +16,7 @@
package org.openo.commontosca.catalog.common;
import com.google.gson.Gson;
+import com.google.gson.JsonElement;
import org.openo.commontosca.catalog.model.common.EnumToscaNodeTypeDefinition;
import org.slf4j.Logger;
@@ -387,4 +388,16 @@ public class ToolUtil {
Gson gson = new Gson();
return gson.toJson(template);
}
+
+ /**
+ * @param value
+ * @return
+ */
+ public static String getAsString(JsonElement value) {
+ if (value.isJsonPrimitive()) {
+ return value.getAsString();
+ }
+
+ return value.toString();
+ }
}
diff --git a/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/model/parser/yaml/zte/entity/ParseYamlResult.java b/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/model/parser/yaml/zte/entity/ParseYamlResult.java
index 62692b24..1089dc3d 100644
--- a/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/model/parser/yaml/zte/entity/ParseYamlResult.java
+++ b/catalog-core/catalog-mgr/src/main/java/org/openo/commontosca/catalog/model/parser/yaml/zte/entity/ParseYamlResult.java
@@ -15,6 +15,8 @@
*/
package org.openo.commontosca.catalog.model.parser.yaml.zte.entity;
+import org.openo.commontosca.catalog.common.ToolUtil;
+
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@@ -28,7 +30,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-
public class ParseYamlResult {
private String toscaDefinitionsVersion;
private String description;
@@ -132,6 +133,9 @@ public class ParseYamlResult {
}
public Map<String, String> getMetadata() {
+ if (this.metadata == null) {
+ return new HashMap<>();
+ }
return metadata;
}
@@ -333,7 +337,7 @@ public class ParseYamlResult {
Iterator<Entry<String, JsonElement>> iterator = properties.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, JsonElement> next = iterator.next();
- ret.put(next.getKey(), next.getValue().getAsString());
+ ret.put(next.getKey(), ToolUtil.getAsString(next.getValue()));
}
return ret;
}
@@ -380,12 +384,12 @@ public class ParseYamlResult {
}
NodeTemplateScalable scalable = new NodeTemplateScalable();
- scalable
- .setMin_instances(propertyJson.getAsJsonObject().get("min_instances").getAsString());
- scalable
- .setMax_instances(propertyJson.getAsJsonObject().get("max_instances").getAsString());
+ scalable.setMin_instances(
+ ToolUtil.getAsString(propertyJson.getAsJsonObject().get("min_instances")));
+ scalable.setMax_instances(
+ ToolUtil.getAsString(propertyJson.getAsJsonObject().get("max_instances")));
scalable.setDefault_instances(
- propertyJson.getAsJsonObject().get("default_instances").getAsString());
+ ToolUtil.getAsString(propertyJson.getAsJsonObject().get("default_instances")));
return scalable;
}
@@ -483,7 +487,7 @@ public class ParseYamlResult {
while (iterator.hasNext()) {
Entry<String, JsonElement> next = iterator.next();
if (next.getValue().isJsonPrimitive() || next.getValue().isJsonObject()) {
- ret.put(next.getKey(), new String[] {next.getValue().getAsString()});
+ ret.put(next.getKey(), new String[] {ToolUtil.getAsString(next.getValue())});
continue;
}
@@ -499,7 +503,7 @@ public class ParseYamlResult {
private String[] parseListValue(JsonArray jsonArray) {
String[] value = new String[jsonArray.size()];
for (int i = 0, size = jsonArray.size(); i < size; i++) {
- value[i] = jsonArray.get(i).getAsString();
+ value[i] = ToolUtil.getAsString(jsonArray.get(i));
}
return value;
}
@@ -522,9 +526,8 @@ public class ParseYamlResult {
Iterator<Entry<String, JsonElement>> iterator = capabilities.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, JsonElement> next = iterator.next();
-
if (next.getValue().isJsonPrimitive() || next.getValue().isJsonObject()) {
- ret.put(next.getKey(), new String[] {next.getValue().getAsString()});
+ ret.put(next.getKey(), new String[] {ToolUtil.getAsString(next.getValue())});
continue;
}
@@ -554,7 +557,7 @@ public class ParseYamlResult {
Iterator<Entry<String, JsonElement>> iterator = properties.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, JsonElement> next = iterator.next();
- ret.put(next.getKey(), next.getValue().getAsString());
+ ret.put(next.getKey(), ToolUtil.getAsString(next.getValue()));
}
return ret;
}
@@ -686,7 +689,7 @@ public class ParseYamlResult {
return "";
}
- return defaultValue.getAsString();
+ return ToolUtil.getAsString(defaultValue);
}
public JsonObject getValue() {