SLING-7304 - Add support for primitive arrays in ObjectModel#toString and ObjectModel#toCollection
diff --git a/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java b/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
index b68ba40..1e1096f 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java
@@ -259,6 +259,14 @@
         if (object instanceof Object[]) {
             return Arrays.asList((Object[]) object);
         }
+        if (object.getClass().isArray()) {
+            int length = Array.getLength(object);
+            Collection<Object> list = new ArrayList<>();
+            for (int i = 0; i < length; i++) {
+                list.add(Array.get(object, i));
+            }
+            return list;
+        }
         if (object instanceof Collection) {
             return (Collection<Object>) object;
         }
diff --git a/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java b/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
index 12f3f64..711dc07 100644
--- a/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
+++ b/src/test/java/org/apache/sling/scripting/sightly/util/ObjectModelTest.java
@@ -51,8 +51,10 @@
         assertTrue(ObjectModel.toBoolean("TRUE"));
         assertTrue(ObjectModel.toBoolean("TrUE"));
         Integer[] testArray = new Integer[] {1, 2, 3};
+        int[] testPrimitiveArray = new int[] {1, 2, 3};
         List testList = Arrays.asList(testArray);
         assertTrue(ObjectModel.toBoolean(testArray));
+        assertTrue(ObjectModel.toBoolean(testPrimitiveArray));
         assertFalse(ObjectModel.toBoolean(new Integer[]{}));
         assertTrue(ObjectModel.toBoolean(testList));
         assertFalse(ObjectModel.toBoolean(Collections.emptyList()));
@@ -84,8 +86,11 @@
         assertEquals("1", ObjectModel.toString(1));
         assertEquals("ADD", ObjectModel.toString(BinaryOperator.ADD));
         Integer[] testArray = new Integer[] {1, 2, 3};
+        int[] testPrimitiveArray = new int[] {1, 2, 3};
         List testList = Arrays.asList(testArray);
         assertEquals("1,2,3", ObjectModel.toString(testList));
+        assertEquals("1,2,3", ObjectModel.toString(testArray));
+        assertEquals("1,2,3", ObjectModel.toString(testPrimitiveArray));
     }
 
     @Test
@@ -93,15 +98,17 @@
         assertTrue(ObjectModel.toCollection(null).isEmpty());
         assertTrue(ObjectModel.toCollection(new StringBuilder()).isEmpty());
         Integer[] testArray = new Integer[] {1, 2, 3};
-        List testList = Arrays.asList(testArray);
+        int[] testPrimitiveArray = new int[]{1, 2, 3};
+        List<Integer> testList = Arrays.asList(testArray);
         Map<String, Integer> map = new HashMap<String, Integer>() {{
             put("one", 1);
             put("two", 2);
         }};
         assertEquals(testList, ObjectModel.toCollection(testArray));
+        assertEquals(testList, ObjectModel.toCollection(testPrimitiveArray));
         assertEquals(testList, ObjectModel.toCollection(testList));
         assertEquals(map.keySet(), ObjectModel.toCollection(map));
-        Vector vector = new Vector(testList);
+        Vector<Integer> vector = new Vector<>(testList);
         assertEquals(testList, ObjectModel.toCollection(vector.elements()));
         assertEquals(testList, ObjectModel.toCollection(testList.iterator()));
         assertEquals(testList, ObjectModel.toCollection(new Bag<>(testArray)));