[
https://issues.apache.org/jira/browse/CLOUDSTACK-8708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14956868#comment-14956868
]
ASF GitHub Bot commented on CLOUDSTACK-8708:
--------------------------------------------
GitHub user DaanHoogland opened a pull request:
https://github.com/apache/cloudstack/pull/932
CLOUDSTACK-8708: gson update and ArrayTypeAdaptor rewrite
unit test for RequestTest is passing in eclipse. On macosx 10.11 using java
1.8 or 1.7 it fails from the command line.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/DaanHoogland/cloudstack gson-upgrade
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/cloudstack/pull/932.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #932
----
commit 2848e5682125dc71809e45bd9ceb98bfb24ed96f
Author: Daan Hoogland <[email protected]>
Date: 2015-10-14T07:50:59Z
CLOUDSTACK-8708: gson update and ArrayTypeAdaptor rewrite
----
> 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)