[
https://issues.apache.org/jira/browse/CLOUDSTACK-8708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14965908#comment-14965908
]
ASF GitHub Bot commented on CLOUDSTACK-8708:
--------------------------------------------
Github user rafaelweingartner commented on a diff in the pull request:
https://github.com/apache/cloudstack/pull/932#discussion_r42564487
--- Diff:
core/src/org/apache/cloudstack/agent/transport/AnswerArrayTypeAdaptor.java ---
@@ -0,0 +1,33 @@
+package org.apache.cloudstack.agent.transport;
+
+import java.io.IOException;
+import java.lang.reflect.Array;
+
+import com.cloud.agent.api.Answer;
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.google.gson.stream.JsonWriter;
+
+public class AnswerArrayTypeAdaptor extends
GenericArrayTypeAdaptor<Answer> {
+
+ @Override
+ protected Answer[] newArray(int size) {
+ Answer[] answers = (Answer[])Array.newInstance(Answer.class, size);
--- End diff --
what do you think about using "return
(Answer[])Array.newInstance(Answer.class, size);"?
> Use Google Gson 2.3.1
> ---------------------
>
> Key: CLOUDSTACK-8708
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8708
> Project: CloudStack
> Issue Type: Improvement
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Affects Versions: 4.6.0
> Reporter: Wido den Hollander
> Assignee: Daan Hoogland
> Priority: Critical
> Labels: gson, reflection
>
> Currently CloudStack uses Google GSON 1.7.2 which is from 30-Sep-2011.
> This is a outdated version. CLOUDSTACK-8677 (Call-Home feature) uses GSON
> 2.3.1 (20-Nov-2014) which is not compatible with the current code.
> The roadmap of Gson shows that since 2.0 there is a change in casting:
> https://sites.google.com/site/gson/gson-roadmap
> "Gson 2.0 doesn’t support type adapters for primitive types."
> The "com.cloud.agent.transport.RequestTest" test in "core" fails with the new
> Gson version and this leads back to "ArrayTypeAdaptor" which does the
> serializing and de-serializing of JSON to Objects and back.
> Class<?> type = ((Class<?>)typeOfT).getComponentType();
> Fails, since getComponentType() doesn't return com.cloud.api.Command.
> This seems to be a Java Reflection issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)