code: private void checkNotClosed() throws SISessionUnavailableException 
    {
      if (tc.isEntryEnabled())
        SibTr.entry(tc, "checkNotClosed");
  
      // Check that the consumer session isn't closed
      _consumerSession.checkNotClosed();
      
      // Now check that this consumer hasn't closed.
      synchronized (this)
      {
        if(_closed)
        {
          SISessionUnavailableException e =
            new SISessionUnavailableException(
              nls.getFormattedMessage(
                "CONSUMER_CLOSED_ERROR_CWSIP0177",
                new Object[] { _localConsumerPoint.getConsumerManager().getDestination().getName(),
                               _localConsumerPoint.getConsumerManager().getMessageProcessor().getMessagingEngineName()},                
                null));
  
          if (tc.isEntryEnabled())
            SibTr.exit(tc, "checkNotClosed", "consumer closed");
  
          throw e;
        }
      }
        
      if (tc.isEntryEnabled())
        SibTr.exit(tc, "checkNotClosed");
    }
docs: First check is to make sure that the original Consumer
  hasn't been closed.  Then check that this bifurcated consumer
  session is not closed.
  
  @throws SIObjectClosedException