ArrayDeque created with default constructor can only hold 15 elements

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P5
    • 12
    • Affects Version/s: None
    • Component/s: core-libs
    • None

      The spec states that a deque 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 is always 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.

            Assignee:
            Martin Buchholz
            Reporter:
            Ivan Gerasimov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: