docs: public final void available(AbstractItemLink link) throws SevereMessageStoreException
      {
          if (_jumpbackEnabled)
          {
              final long newPos = link.getPosition();
  
              // we need to synchronize the read of the position
              // or we can miss out items when reading an empty queue fast.
              // More importantly, the removal of the next from the cursor cannot
              // happen while we are adding the available
              synchronized(this)
              {
                  if (newPos <= _highestPosition)
                  {
                      // Only store matching links, 'coz its quicker
                      if (null != link.matches(_filter))
                      {
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "availableLink adding: " + link);
  
                          _behindList.insert(link);
                      }
                      else
                      {
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "availableLink does not match: " + link);
                      }
                  }
                  else
                  {
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "availableLink seq(" + newPos + ") too large (" + _highestPosition + ")");
                  }
              }
          }
          else
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "available link - jumpbackDisabled: " + link);
          }
      }