diff -r 1a631c673f92 -r 9f9e55362ca5 javafx-beans/src/com/sun/javafx/collections/ObservableFloatArrayImpl.java
--- a/javafx-beans/src/com/sun/javafx/collections/ObservableFloatArrayImpl.java	Mon May 20 12:54:14 2013 -0700
+++ b/javafx-beans/src/com/sun/javafx/collections/ObservableFloatArrayImpl.java	Mon May 20 13:22:47 2013 -0700
@@ -264,4 +264,23 @@
         }
         if (length < 0) throw new ArrayIndexOutOfBoundsException(-1);
     }
+
+    @Override
+    public String toString() {
+        if (array == null)
+            return "null";
+
+        int iMax = size() - 1;
+        if (iMax == -1)
+            return "[]";
+
+        StringBuilder b = new StringBuilder();
+        b.append('[');
+        for (int i = 0; ; i++) {
+            b.append(array[i]);
+            if (i == iMax)
+                return b.append(']').toString();
+            b.append(", ");
+        }
+    }
 }
diff -r 1a631c673f92 -r 9f9e55362ca5 javafx-beans/src/com/sun/javafx/collections/ObservableIntegerArrayImpl.java
--- a/javafx-beans/src/com/sun/javafx/collections/ObservableIntegerArrayImpl.java	Mon May 20 12:54:14 2013 -0700
+++ b/javafx-beans/src/com/sun/javafx/collections/ObservableIntegerArrayImpl.java	Mon May 20 13:22:47 2013 -0700
@@ -264,4 +264,23 @@
         }
         if (length < 0) throw new ArrayIndexOutOfBoundsException(-1);
     }
+
+    @Override
+    public String toString() {
+        if (array == null)
+            return "null";
+
+        int iMax = size() - 1;
+        if (iMax == -1)
+            return "[]";
+
+        StringBuilder b = new StringBuilder();
+        b.append('[');
+        for (int i = 0; ; i++) {
+            b.append(array[i]);
+            if (i == iMax)
+                return b.append(']').toString();
+            b.append(", ");
+        }
+    }
 }
diff -r 1a631c673f92 -r 9f9e55362ca5 javafx-beans/test/javafx/collections/ObservableArrayTest.java
--- a/javafx-beans/test/javafx/collections/ObservableArrayTest.java	Mon May 20 12:54:14 2013 -0700
+++ b/javafx-beans/test/javafx/collections/ObservableArrayTest.java	Mon May 20 13:22:47 2013 -0700
@@ -83,6 +83,7 @@
         abstract int arrayLength(A array);
         abstract P get(A array, int index);
         abstract void assertElementsEqual(A actual, int from, int to, A expected, int expFrom);
+        abstract String primitiveArrayToString(A array);
     }
 
     private static class IntegerArrayWrapper extends ArrayWrapper<ObservableIntegerArray, int[], Integer> {
@@ -196,6 +197,11 @@
         @Override int[] clonePrimitiveArray(int[] array) {
             return Arrays.copyOf(array, array.length);
         }
+
+        @Override
+        String primitiveArrayToString(int[] array) {
+            return Arrays.toString(array);
+        }
     }
 
     private static class FloatArrayWrapper extends ArrayWrapper<ObservableFloatArray, float[], Float> {
@@ -312,6 +318,11 @@
         @Override void setT(int destIndex, ObservableFloatArray src, int srcIndex, int length) {
             array.set(destIndex, src, srcIndex, length);
         }
+
+        @Override
+        String primitiveArrayToString(float[] array) {
+            return Arrays.toString(array);
+        }
     }
 
     static final List<String> EMPTY = Collections.emptyList();
@@ -2594,4 +2605,31 @@
         mao.checkOnlySizeChanged(array);
         assertEquals(0, array.size());
     }
+
+    // ================= toString() tests ===================
+
+    @Test public void testToString() {
+        String actual = array.toString();
+        String expected = wrapper.primitiveArrayToString(wrapper.toArray(null));
+        assertEquals(expected, actual);
+        String regex = "\\[[0-9]+(\\.[0-9]+){0,1}(\\, [0-9]+(.[0-9]+){0,1}){" + (initialSize - 1) + "}\\]";
+        assertTrue("toString() output matches to regex '" + regex + "'. Actual = '" + actual + "'",
+                actual.matches(regex));
+    }
+
+    @Test public void testToStringAfterResize() {
+        array.resize(initialSize / 2);
+        String actual = array.toString();
+        String expected = wrapper.primitiveArrayToString(wrapper.toArray(null));
+        assertEquals(expected, actual);
+        String regex = "\\[[0-9]+(\\.[0-9]+){0,1}(\\, [0-9]+(.[0-9]+){0,1}){" + (array.size() - 1) + "}\\]";
+        assertTrue("toString() output matches to regex '" + regex + "'. Actual = '" + actual + "'",
+                actual.matches(regex));
+    }
+
+    @Test public void testToStringAfterClear() {
+        array.clear();
+        String actual = array.toString();
+        assertEquals("[]", actual);
+    }
 }
