From b7eefe18367bd65115fde58aabc659153b5b9c9a Mon Sep 17 00:00:00 2001 From: alena Date: Mon, 22 Nov 2010 14:56:25 -0800 Subject: [PATCH] Gson deserialization: return JsonNull object when object list is empty. --- .../com/cloud/agent/api/SecStorageFirewallCfgCommand.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/src/com/cloud/agent/api/SecStorageFirewallCfgCommand.java b/core/src/com/cloud/agent/api/SecStorageFirewallCfgCommand.java index f23b64ac512..45dc67e92d9 100644 --- a/core/src/com/cloud/agent/api/SecStorageFirewallCfgCommand.java +++ b/core/src/com/cloud/agent/api/SecStorageFirewallCfgCommand.java @@ -53,6 +53,10 @@ public class SecStorageFirewallCfgCommand extends Command { } public JsonElement serialize(List src, Type typeOfSrc, JsonSerializationContext context) { + if (src.size() == 0) { + s_logger.info("Returning JsonNull"); + return new JsonNull(); + } Gson json = s_gBuilder.create(); s_logger.debug("Returning gson tree"); return json.toJsonTree(src, listType); @@ -60,6 +64,9 @@ public class SecStorageFirewallCfgCommand extends Command { public List deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + if (json.isJsonNull()) { + return new ArrayList(); + } Gson jsonp = s_gBuilder.create(); List pcs = jsonp.fromJson(json, listType); return pcs;