8072626: Test for JDK-8068872 fails in tip
authorhannesw
Thu, 05 Feb 2015 16:26:36 +0100
changeset 28788 51c662748340
parent 28787 cab4b0497d27
child 28789 51d0ef4e53e6
8072626: Test for JDK-8068872 fails in tip Reviewed-by: lagergren, jlaskey
nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/JSONParser.java
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/JSONParser.java	Thu Feb 05 14:47:28 2015 +0100
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/JSONParser.java	Thu Feb 05 16:26:36 2015 +0100
@@ -232,12 +232,13 @@
         final long oldLength = arrayData.length();
         final long longIndex = ArrayIndex.toLongIndex(index);
         ArrayData newArrayData = arrayData;
-        if (longIndex > oldLength) {
-            if (arrayData.canDelete(oldLength, longIndex - 1, false)) {
+        if (longIndex >= oldLength) {
+            newArrayData = newArrayData.ensure(longIndex);
+            if (longIndex > oldLength) {
                 newArrayData = newArrayData.delete(oldLength, longIndex - 1);
             }
         }
-        return newArrayData.ensure(longIndex).set(index, value, false);
+        return newArrayData.set(index, value, false);
     }
 
     private static PropertyMap addObjectProperty(final PropertyMap propertyMap, final List<Object> values,