summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Frijters <jeroen@sumatra.nl>2007-03-31 10:01:38 +0000
committerJeroen Frijters <jeroen@sumatra.nl>2007-03-31 10:01:38 +0000
commit3e09b88a6a2073f52ba900514c3373c531e62f29 (patch)
tree8a2b018257ee734480eb01de10a6364dec6a8c06
parentd6c362f1b8abd34e063e8281171657dac4e90a43 (diff)
downloadclasspath-3e09b88a6a2073f52ba900514c3373c531e62f29.tar.gz
2007-03-31 Jeroen Frijters <jeroen@frijters.net>
PR classpath/31402: * java/util/concurrent/CopyOnWriteArrayList.java (remove): Fixed ArrayIndexOutOfBoundsException when index == 0.
-rw-r--r--ChangeLog6
-rw-r--r--java/util/concurrent/CopyOnWriteArrayList.java3
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 7880d3e92..41fcfb0cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-31 Jeroen Frijters <jeroen@frijters.net>
+
+ PR classpath/31402:
+ * java/util/concurrent/CopyOnWriteArrayList.java
+ (remove): Fixed ArrayIndexOutOfBoundsException when index == 0.
+
2007-03-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
* javax/management/openmbean/CompositeDataInvocationHandler.java:
diff --git a/java/util/concurrent/CopyOnWriteArrayList.java b/java/util/concurrent/CopyOnWriteArrayList.java
index ec2c90cc1..3cd484a4f 100644
--- a/java/util/concurrent/CopyOnWriteArrayList.java
+++ b/java/util/concurrent/CopyOnWriteArrayList.java
@@ -349,7 +349,8 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
{
E[] data = this.data;
E[] newData = (E[]) new Object[data.length - 1];
- System.arraycopy(data, 0, newData, 0, index - 1);
+ if (index > 0)
+ System.arraycopy(data, 0, newData, 0, index - 1);
System.arraycopy(data, index + 1, newData, index,
data.length - index - 1);
E r = data[index];