diff --git a/server/src/com/cloud/api/ApiGsonHelper.java b/server/src/com/cloud/api/ApiGsonHelper.java
index fe75283ced4..7a48f49a0aa 100644
--- a/server/src/com/cloud/api/ApiGsonHelper.java
+++ b/server/src/com/cloud/api/ApiGsonHelper.java
@@ -25,8 +25,7 @@ public class ApiGsonHelper {
static {
s_gBuilder = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
s_gBuilder.setVersion(1.3);
- s_gBuilder.registerTypeAdapter(ResponseObject.class, new ResponseObjectTypeAdapter());
- s_gBuilder.registerTypeAdapter(String.class, new EncodedStringTypeAdapter());
+ s_gBuilder.registerTypeAdapter(ResponseObject.class, new ResponseObjectTypeAdapter());
}
public static GsonBuilder getBuilder() {
diff --git a/server/src/com/cloud/api/ApiResponseGsonHelper.java b/server/src/com/cloud/api/ApiResponseGsonHelper.java
new file mode 100644
index 00000000000..852e52c3664
--- /dev/null
+++ b/server/src/com/cloud/api/ApiResponseGsonHelper.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (C) 2010 Cloud.com, Inc. All rights reserved.
+ *
+ * This software is licensed under the GNU General Public License v3 or later.
+ *
+ * It is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or any later version.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+
+/**
+ * The ApiResonseGsonHelper is different from ApiGsonHelper - it registeres one more adapter for String type required for api response encoding
+ */
+
+
+package com.cloud.api;
+
+import com.google.gson.GsonBuilder;
+
+public class ApiResponseGsonHelper {
+ private static final GsonBuilder s_gBuilder;
+ static {
+ s_gBuilder = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
+ s_gBuilder.setVersion(1.3);
+ s_gBuilder.registerTypeAdapter(ResponseObject.class, new ResponseObjectTypeAdapter());
+ s_gBuilder.registerTypeAdapter(String.class, new EncodedStringTypeAdapter());
+ }
+
+ public static GsonBuilder getBuilder() {
+ return s_gBuilder;
+ }
+}
\ No newline at end of file
diff --git a/server/src/com/cloud/api/ResponseObjectTypeAdapter.java b/server/src/com/cloud/api/ResponseObjectTypeAdapter.java
index 72b8a40c4b4..c5c061cf8fe 100644
--- a/server/src/com/cloud/api/ResponseObjectTypeAdapter.java
+++ b/server/src/com/cloud/api/ResponseObjectTypeAdapter.java
@@ -45,7 +45,7 @@ public class ResponseObjectTypeAdapter implements JsonSerializer
obj.addProperty("errortext", ((ExceptionResponse) responseObj).getErrorText());
return obj;
} else {
- obj.add(responseObj.getObjectName(), ApiGsonHelper.getBuilder().create().toJsonTree(responseObj));
+ obj.add(responseObj.getObjectName(), ApiResponseGsonHelper.getBuilder().create().toJsonTree(responseObj));
return obj;
}
}
diff --git a/server/src/com/cloud/api/response/ApiResponseSerializer.java b/server/src/com/cloud/api/response/ApiResponseSerializer.java
index 3e7dd310cac..41a87a0a63f 100644
--- a/server/src/com/cloud/api/response/ApiResponseSerializer.java
+++ b/server/src/com/cloud/api/response/ApiResponseSerializer.java
@@ -31,7 +31,7 @@ import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
-import com.cloud.api.ApiGsonHelper;
+import com.cloud.api.ApiResponseGsonHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.ResponseObject;
import com.cloud.configuration.Config;
@@ -78,7 +78,7 @@ public class ApiResponseSerializer {
private static String toJSONSerializedString(ResponseObject result) {
if (result != null) {
- Gson gson = ApiGsonHelper.getBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create();
+ Gson gson = ApiResponseGsonHelper.getBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create();
StringBuilder sb = new StringBuilder();
sb.append("{ \"" + result.getResponseName() + "\" : ");