docs: private void writeObject(java.io.ObjectOutputStream s)
              throws java.io.IOException {
          final ReentrantLock lock = this.lock;
          lock.lock();
          try {
              // Write out capacity and any hidden stuff
              s.defaultWriteObject();
              // Write out all elements in the proper order.
              for (Node<E> p = first; p != null; p = p.next)
                  s.writeObject(p.item);
              // Use trailing null as sentinel
              s.writeObject(null);
          } finally {
              lock.unlock();
          }
      }