You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2013/10/22 11:51:09 UTC
svn commit: r1534576 - in
/sling/trunk/contrib/extensions/resource-inventory: pom.xml
src/main/java/org/apache/sling/resource/inventory/impl/JsonObjectCreator.java
Author: cziegeler
Date: Tue Oct 22 09:51:08 2013
New Revision: 1534576
URL: http://svn.apache.org/r1534576
Log:
SLING-3197 : ClassCastException when serializing arrays of scalar types
Modified:
sling/trunk/contrib/extensions/resource-inventory/pom.xml
sling/trunk/contrib/extensions/resource-inventory/src/main/java/org/apache/sling/resource/inventory/impl/JsonObjectCreator.java
Modified: sling/trunk/contrib/extensions/resource-inventory/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resource-inventory/pom.xml?rev=1534576&r1=1534575&r2=1534576&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resource-inventory/pom.xml (original)
+++ sling/trunk/contrib/extensions/resource-inventory/pom.xml Tue Oct 22 09:51:08 2013
@@ -95,5 +95,11 @@
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.0</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</project>
Modified: sling/trunk/contrib/extensions/resource-inventory/src/main/java/org/apache/sling/resource/inventory/impl/JsonObjectCreator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/resource-inventory/src/main/java/org/apache/sling/resource/inventory/impl/JsonObjectCreator.java?rev=1534576&r1=1534575&r2=1534576&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/resource-inventory/src/main/java/org/apache/sling/resource/inventory/impl/JsonObjectCreator.java (original)
+++ sling/trunk/contrib/extensions/resource-inventory/src/main/java/org/apache/sling/resource/inventory/impl/JsonObjectCreator.java Tue Oct 22 09:51:08 2013
@@ -26,6 +26,7 @@ import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.commons.json.JSONArray;
@@ -150,7 +151,27 @@ public abstract class JsonObjectCreator
throws JSONException {
Object[] values = null;
if (value.getClass().isArray()) {
- values = (Object[])value;
+ if (value instanceof long[]) {
+ values = ArrayUtils.toObject((long[])value);
+ } else if (value instanceof int[]) {
+ values = ArrayUtils.toObject((int[])value);
+ } else if (value instanceof double[]) {
+ values = ArrayUtils.toObject((double[])value);
+ } else if (value instanceof byte[]) {
+ values = ArrayUtils.toObject((byte[])value);
+ } else if (value instanceof float[]) {
+ values = ArrayUtils.toObject((float[])value);
+ } else if (value instanceof short[]) {
+ values = ArrayUtils.toObject((short[])value);
+ } else if (value instanceof long[]) {
+ values = ArrayUtils.toObject((long[])value);
+ } else if (value instanceof boolean[]) {
+ values = ArrayUtils.toObject((boolean[])value);
+ } else if (value instanceof char[]) {
+ values = ArrayUtils.toObject((char[])value);
+ } else {
+ values = (Object[]) value;
+ }
// write out empty array
if ( values.length == 0 ) {
obj.put(key, new JSONArray());