code: @Override
      public BifurcatedConsumerSession createBifurcatedConsumerSession(
                                                                       final long id) throws SISessionDroppedException,
                      SIConnectionDroppedException, SISessionUnavailableException,
                      SIConnectionUnavailableException, SIConnectionLostException,
                      SILimitExceededException, SINotAuthorizedException,
                      SIResourceException, SIErrorException, SIIncorrectCallException {
  
          checkValid();
  
          final BifurcatedConsumerSession session = _delegateConnection
                          .createBifurcatedConsumerSession(id);
  
          return new SibRaBifurcatedConsumerSession(this, session);
  
      }
docs: This method is used to create a BifurcatedConsumerSession object, which
  is an additional session representing an existing consumer. Checks that
  the connection is valid and then delegates.
  
  @param id
  the identifier of the consumer
  @throws SIIncorrectCallException
  if the delegation fails
  @throws SIErrorException
  if the delegation fails
  @throws SIResourceException
  if the delegation fails
  @throws SINotAuthorizedException
  if the delegation fails
  @throws SILimitExceededException
  if the delegation fails
  @throws SIConnectionLostException
  if the delegation fails
  @throws SIConnectionUnavailableException
  if the delegation fails
  @throws SISessionUnavailableException
  if the connection is not valid
  @throws SIConnectionDroppedException
  if the delegation fails
  @throws SISessionDroppedException
  if the delegation fails