You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by py...@apache.org on 2006/08/28 12:12:49 UTC

svn commit: r437626 - in /incubator/harmony/enhanced/classlib/trunk/modules/luni/src: main/java/java/util/ArrayList.java test/java/tests/api/java/util/ArrayListTest.java

Author: pyang
Date: Mon Aug 28 03:12:46 2006
New Revision: 437626

URL: http://svn.apache.org/viewvc?rev=437626&view=rev
Log:
Patch applied for HARMONY-1293 ([classlib][luni] java.util.ArrayList.addAll(int, Collection) behaves incorrectly)

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java?rev=437626&r1=437625&r2=437626&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/ArrayList.java Mon Aug 28 03:12:46 2006
@@ -337,7 +337,7 @@
 	private void growAtFront(int required) {
 		int size = size();
 		if (array.length - lastIndex >= required) {
-			int newFirst = array.length - lastIndex;
+			int newFirst = array.length - size;
 			if (size > 0) {
 				System.arraycopy(array, firstIndex, array, newFirst, size);
 				int length = firstIndex + size > newFirst ? newFirst
@@ -355,8 +355,8 @@
 			E[] newArray = newElementArray(size + increment);
 			if (size > 0)
 				System.arraycopy(array, firstIndex, newArray, newArray.length
-						- lastIndex, size);
-			firstIndex = newArray.length - lastIndex;
+						- size, size);
+			firstIndex = newArray.length - size;
 			lastIndex = newArray.length;
 			array = newArray;
 		}

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java?rev=437626&r1=437625&r2=437626&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/util/ArrayListTest.java Mon Aug 28 03:12:46 2006
@@ -472,6 +472,49 @@
 					.get(i) == objArray[i]);
 	}
 
+    /**
+     * @test java.util.ArrayList#addAll(int, Collection)
+     */
+    public void test_addAll() {
+        ArrayList list = new ArrayList();
+        list.add("one");
+        list.add("two");
+        assertEquals(2, list.size());
+
+        list.remove(0);
+        assertEquals(1, list.size());
+        
+        ArrayList collection = new ArrayList();
+        collection.add("1");
+        collection.add("2");
+        collection.add("3");
+        assertEquals(3, collection.size());
+        
+        list.addAll(0, collection);
+        assertEquals(4, list.size());
+        
+        list.remove(0);
+        list.remove(0);
+        assertEquals(2, list.size());
+
+        collection.add("4");
+        collection.add("5");
+        collection.add("6");
+        collection.add("7");
+        collection.add("8");
+        collection.add("9");
+        collection.add("10");
+        collection.add("11");
+        collection.add("12");
+        
+        assertEquals(12, collection.size());
+        
+        list.addAll(0, collection);
+        assertEquals(14, list.size());
+    }
+    
+    
+    
 	/**
 	 * Sets up the fixture, for example, open a network connection. This method
 	 * is called before a test is executed.