code: public QueueItem txnPeek(long offerId, String transactionId) {
          QueueItem item = getItemQueue().peek();
          if (item == null) {
              if (offerId == -1) {
                  return null;
              }
              TxQueueItem txItem = txMap.get(offerId);
              if (txItem == null) {
                  return null;
              }
              item = new QueueItem(this, txItem.getItemId(), txItem.getData());
              return item;
          }
          if (store.isEnabled() && item.getData() == null) {
              try {
                  load(item);
              } catch (Exception e) {
                  throw new HazelcastException(e);
              }
          }
          return item;
      }
docs: Retrieves, but does not remove, the head of the queue. If the queue is empty checks if there is a reserved item with
  the associated {@code offerId} and returns it.
  If the item was retrieved from the queue but does not contain any data and the queue store is enabled, this method will
  try load the data from the data store.
  
  @param offerId       the ID of the reserved item to be returned if the queue is empty
  @param transactionId currently ignored
  @return the head of the queue or a reserved item associated with the {@code offerId} if the queue is empty
  @throws HazelcastException if there is an exception while loading the data from the queue store