code: @Override
      public BrowserSession createBrowserSession(
                                                 final SIDestinationAddress destinationAddress,
                                                 final DestinationType destType, final SelectionCriteria criteria,
                                                 final String alternateUser) throws SIConnectionDroppedException,
                      SIConnectionUnavailableException, SIConnectionLostException,
                      SILimitExceededException, SINotAuthorizedException,
                      SITemporaryDestinationNotFoundException, SIResourceException,
                      SIErrorException, SIIncorrectCallException,
                      SINotPossibleInCurrentConfigurationException {
  
          checkValid();
  
          final BrowserSession session = _delegateConnection
                          .createBrowserSession(destinationAddress, destType, criteria,
                                                alternateUser);
  
          return new SibRaBrowserSession(this, session);
  
      }
docs: Creates a browser session. Checks that the connection is valid and then
  delegates. Wraps the <code>BrowserSession</code> returned from the
  delegate in a <code>SibRaBrowserSession</code>.
  
  @param destinationAddress
  the address of the destination
  @param destType
  the destination type
  @param criteria
  the selection criteria
  @param alternateUser
  the name of the user under whose authority operations of the
  BrowserSession should be performed (may be null)
  @return the browser session
  @throws SINotPossibleInCurrentConfigurationException
  if the delegation fails
  @throws SIIncorrectCallException
  if the delegation fails
  @throws SIErrorException
  if the delegation fails
  @throws SIResourceException
  if the delegation fails
  @throws SITemporaryDestinationNotFoundException
  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 connection is not valid
  @throws SIConnectionDroppedException
  if the delegation fails