You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by li...@apache.org on 2007/03/23 10:16:59 UTC
svn commit: r521638 - in /harmony/enhanced/classlib/trunk/modules/luni/src:
main/java/java/util/ArrayList.java
test/java/tests/api/java/util/ArrayListTest.java
Author: liangyx
Date: Fri Mar 23 02:16:58 2007
New Revision: 521638
URL: http://svn.apache.org/viewvc?view=rev&rev=521638
Log:
Apply patch for HARMONY-3481([classlib][luni] ArrayList throw ArrayIndexOutOfBoundsException when invoking addAll(Collection) after removing some elements)
Modified:
harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java
harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java?view=diff&rev=521638&r1=521637&r2=521638
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java Fri Mar 23 02:16:58 2007
@@ -356,7 +356,9 @@
}
E[] newArray = newElementArray(size + increment);
if (size > 0) {
- System.arraycopy(array, firstIndex, newArray, firstIndex, size);
+ System.arraycopy(array, firstIndex, newArray, 0, size);
+ firstIndex = 0;
+ lastIndex = size;
}
array = newArray;
}
Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java?view=diff&rev=521638&r1=521637&r2=521638
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java Fri Mar 23 02:16:58 2007
@@ -188,12 +188,29 @@
.get(101) == i.next());
assertTrue("Item at slot 103 is wrong: " + alist.get(102), alist
.get(102) == i.next());
+
+
+ // Regression test for Harmony-3481
+ ArrayList<Integer> originalList = new ArrayList<Integer>(12);
+ for (int j = 0; j < 12; j++) {
+ originalList.add(j);
+ }
+
+ originalList.remove(0);
+ originalList.remove(0);
+
+ ArrayList<Integer> additionalList = new ArrayList<Integer>(11);
+ for (int j = 0; j < 11; j++) {
+ additionalList.add(j);
+ }
+ assertTrue(originalList.addAll(additionalList));
+ assertEquals(21, originalList.size());
}
/**
- * @tests java.util.ArrayList#clear()
- */
+ * @tests java.util.ArrayList#clear()
+ */
public void test_clear() {
// Test for method void java.util.ArrayList.clear()
alist.clear();