code: public SIBusMessage next() 
        throws SISessionUnavailableException, SISessionDroppedException,
               SIConnectionUnavailableException, SIConnectionDroppedException,
               SIResourceException, SIConnectionLostException, 
               SIErrorException,
               SINotAuthorizedException
  	{
        if (tc.isEntryEnabled()) SibTr.entry(this, tc, "next");
        
        checkAlreadyClosed();
        
        SIBusMessage message = null;
        synchronized(lock)
        {
           try
           {
              closeLock.readLock().lockInterruptibly();
              try
              {
                 message = proxyQueue.next();
              }
              catch(MessageDecodeFailedException mde)
              {
                 FFDCFilter.processException(mde, CLASS_NAME + ".next", 
                                             CommsConstants.BROWSERSESSION_NEXT_01, this);
                 SIResourceException coreException = new SIResourceException(mde);
                 throw coreException;
              }
              finally
              {
                 closeLock.readLock().unlock();
              }
           }
           catch(InterruptedException e)
           {
              // No FFDC code needed
              if (tc.isDebugEnabled()) SibTr.debug(this, tc, "interrupted exception");
           }
        }
        
        if (tc.isEntryEnabled()) SibTr.exit(this, tc, "next", message);
        return message;
  	}
docs: f169897.2 changed throws