diff --git a/engine/src/main/java/org/archive/crawler/restlet/JobRelatedResource.java b/engine/src/main/java/org/archive/crawler/restlet/JobRelatedResource.java index c6a02716..911a86e8 100644 --- a/engine/src/main/java/org/archive/crawler/restlet/JobRelatedResource.java +++ b/engine/src/main/java/org/archive/crawler/restlet/JobRelatedResource.java @@ -22,6 +22,7 @@ package org.archive.crawler.restlet; import java.beans.IntrospectionException; import java.beans.PropertyDescriptor; import java.io.File; +import java.lang.reflect.Array; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; @@ -249,13 +250,15 @@ public abstract class JobRelatedResource extends BaseResource { Collection propValues = new LinkedList(); if(object.getClass().isArray()) { - Object[] array = (Object[])object; - for(int i = 0; i < array.length; i++) { + // TODO: may want a special handling for an array of + // primitive types? + int len = Array.getLength(object); + for (int i = 0; i < len; i++) { if(beanPath!=null) { beanPathPrefix = beanPath+"["; } // TODO: protect against overlong content? - propValues.add(makePresentableMapFor(i + "", array[i], + propValues.add(makePresentableMapFor(i + "", Array.get(object, i), alreadyWritten, beanPathPrefix)); } }