code: public final AbstractItem next(boolean allowUnavailable) throws SevereMessageStoreException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "next", Boolean.valueOf(allowUnavailable));
  
          AbstractItem found = null;
  
          // check from current position
          AbstractItemLink lookAt = (AbstractItemLink)advance();
          while (null != lookAt && null == found)
          {
              found = lookAt.matches(_filter, allowUnavailable);
              if (null == found)
              {
                  lookAt = (AbstractItemLink)advance();
              }
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "next", found);
          return found;
      }
docs: Reply the next stored object that is deemed a match by the filter specified when the cursor
  was created.
  <p>
  Objects locked by an unresolved transactional get or put, or by a getCursor are not visible
  to this method unless the allowUnavailable parameter is true.
  </p>
  <p>
  Objects returned by this method are not locked .
  </p>
  <p>
  This is used for browse cursors so does not perform jumpback.
  </p>
  @throws SevereMessageStoreException