--- jsr166/src/main/java/util/ArrayDeque.java 2015/02/23 19:54:04 1.64 +++ jsr166/src/main/java/util/ArrayDeque.java 2015/02/28 20:35:47 1.65 @@ -251,10 +251,10 @@ public class ArrayDeque extends Abstr @SuppressWarnings("unchecked") E result = (E) elements[h]; // Element is null if deque empty - if (result == null) - return null; - elements[h] = null; // Must null out slot - head = (h + 1) & (elements.length - 1); + if (result != null) { + elements[h] = null; // Must null out slot + head = (h + 1) & (elements.length - 1); + } return result; } @@ -262,10 +262,10 @@ public class ArrayDeque extends Abstr int t = (tail - 1) & (elements.length - 1); @SuppressWarnings("unchecked") E result = (E) elements[t]; - if (result == null) - return null; - elements[t] = null; - tail = t; + if (result != null) { + elements[t] = null; + tail = t; + } return result; }