docs: public Deque<QueueItem> getItemQueue() {
          if (itemQueue == null) {
              itemQueue = new LinkedList<QueueItem>();
              if (backupMap != null && !backupMap.isEmpty()) {
                  List<QueueItem> values = new ArrayList<QueueItem>(backupMap.values());
                  Collections.sort(values);
                  itemQueue.addAll(values);
                  QueueItem lastItem = itemQueue.peekLast();
                  if (lastItem != null) {
                      setId(lastItem.itemId + ID_PROMOTION_OFFSET);
                  }
                  backupMap.clear();
                  backupMap = null;
              }
              if (!txMap.isEmpty()) {
                  long maxItemId = Long.MIN_VALUE;
                  for (TxQueueItem item : txMap.values()) {
                      maxItemId = Math.max(maxItemId, item.itemId);
                  }
                  setId(maxItemId + ID_PROMOTION_OFFSET);
              }
          }
          return itemQueue;
      }