--- jsr166/src/main/java/util/ArrayDeque.java 2005/09/16 23:11:13 1.20 +++ jsr166/src/main/java/util/ArrayDeque.java 2005/09/16 23:59:27 1.22 @@ -503,8 +503,8 @@ public class ArrayDeque extends Abstr if (head <= i) { System.arraycopy(elements, head, elements, head + 1, front); } else { // Wrap around - elements[0] = elements[mask]; System.arraycopy(elements, 0, elements, 1, i); + elements[0] = elements[mask]; System.arraycopy(elements, head, elements, head + 1, mask - head); } elements[head] = null; @@ -515,10 +515,10 @@ public class ArrayDeque extends Abstr tail = (tail - 1) & mask; if (i < t) { // Copy the null tail as well System.arraycopy(elements, i + 1, elements, i, back); - } else { // Wrap around - elements[mask] = elements[0]; + } else { // Wrap around System.arraycopy(elements, i + 1, elements, i, mask - i); - System.arraycopy(elements, 1, elements, 0, tail); + elements[mask] = elements[0]; + System.arraycopy(elements, 1, elements, 0, t); } return true; }