docs: public SIBusMessage nextLocked()
        throws SISessionUnavailableException, SISessionDroppedException,
               SIConnectionUnavailableException, SIConnectionDroppedException,
               SIResourceException, SIConnectionLostException, 
               SIErrorException
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc,"nextLocked");
        JsMessage retMsg = null;
        
        synchronized(lmeOperationMonitor)
        {
           checkValid();   
           
           // At this point we look at each item in the array up to end of the array for the next
           // non-null item. This is because some points in the array may be null if they have been
           // deleted or unlocked.
           while (nextIndex != messages.length)
           {
              retMsg = messages[nextIndex];
              nextIndex++;
              
              if (retMsg != null) break;
           }
        }
        
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc,"nextLocked", retMsg);
        return retMsg;
  	}