OSDN Git Service

2010-04-27 Andrew Haley <aph@redhat.com>
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Apr 2010 17:28:08 +0000 (17:28 +0000)
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Apr 2010 17:28:08 +0000 (17:28 +0000)
        * java/util/concurrent/CopyOnWriteArrayList.java: Fix for empty
        list.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158790 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/classpath/ChangeLog
libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class

index f98d1c9..1db1158 100644 (file)
@@ -1,5 +1,10 @@
 2010-04-27  Andrew Haley  <aph@redhat.com>
 
+       * java/util/concurrent/CopyOnWriteArrayList.java: Fix for empty
+       list.
+
+2010-04-27  Andrew Haley  <aph@redhat.com>
+
        * gnu/javax/print/ipp/IppResponse.java (parseAttributes): Handle
        IppValueTag.UNKNOWN.  
        * gnu/javax/print/ipp/IppRequest.java (writeOperationAttributes):
index 6e4fb9a..0207182 100644 (file)
@@ -452,7 +452,12 @@ public class CopyOnWriteArrayList<E>
   public synchronized boolean remove(Object element)
   {
     E[] snapshot = this.data;
-    E[] newData = (E[]) new Object[snapshot.length - 1];
+    int len = snapshot.length;
+
+    if (len == 0)
+      return false;
+
+    E[] newData = (E[]) new Object[len - 1];
     
     // search the element to remove while filling the backup array
     // this way we can run this method in O(n)
index 2dba681..a8f5b0a 100644 (file)
Binary files a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class differ
index 03ab92a..2ac9719 100644 (file)
Binary files a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class differ
index 1f2e00a..c20c1fe 100644 (file)
Binary files a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class differ
index 83fd284..df5d078 100644 (file)
Binary files a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class differ
index 572a880..1265019 100644 (file)
Binary files a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class differ
index 0e7bd0f..97d63d8 100644 (file)
Binary files a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class differ