Hello,
Note that another approach would be to change the spec to match the
long-standing implementation. That is the the default resolution patch
in situations like this, but in this case I don't think it matters very
much how the matter is resolved.
Cheers,
-Joe
On 6/29/2018 7:21 PM, Ivan Gerasimov wrote:
Hello!
The spec states that an ArrayDeque created with the default
constructor should be able to hold 16 elements.
https://docs.oracle.com/javase/10/docs/api/java/util/ArrayDeque.html#%3Cinit%3E()
"""
Constructs an empty array deque with an initial capacity sufficient to
hold 16 elements.
"""
In the constructor an array of size 16 is created:
elements = new Object[16];
However, one element must always be null:
/**
* The array in which the elements of the deque are stored.
* All array cells not holding deque elements are always null.
* The array always has at least one null slot (at tail).
*/
transient Object[] elements;
which leaves us space for only 15 elements, contrarily to what the
spec promises.
Would you please help review a trivial fix?
BUGURL: https://bugs.openjdk.java.net/browse/JDK-8206123
WEBREV: http://cr.openjdk.java.net/~igerasim/8206123/00/webrev/
Thanks in advance!