docs: @Override
      public BrowserSession createSystemBrowserSession(SIDestinationAddress destAddress,
                                                       DestinationType destinationType,
                                                       SelectionCriteria criteria)
  
                      throws SIConnectionDroppedException, SIConnectionUnavailableException, SIErrorException, SIIncorrectCallException, SIResourceException, SINotPossibleInCurrentConfigurationException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "createSystemBrowserSession",
                          new Object[] { destAddress, destinationType, criteria });
  
          // See if this connection has been closed
          checkNotClosed();
  
          checkBrowserSessionNullParameters(destAddress);
  
          if (!destAddress.getDestinationName().startsWith(SIMPConstants.SYSTEM_DESTINATION_PREFIX))
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "createSystemBrowserSession", "SIIncorrectCallException");
              throw new SIIncorrectCallException(
                              nls.getFormattedMessage(
                                                      "SYSTEM_DESTINATION_USAGE_ERROR_CWSIP0024",
                                                      new Object[] { destAddress.getDestinationName(),
                                                                    _messageProcessor.getMessagingEngineName() },
                                                      null));
          }
  
          BrowserSession session = null;
          try
          {
              session =
                              createBrowserSession(destAddress,
                                                   destinationType,
                                                   criteria,
                                                   true,
                                                   null, // alternateUser 
                                                   false);
          } catch (SITemporaryDestinationNotFoundException e)
          {
              // Temporary destination not found should not happen for a System destination
              // FFDC
              FFDCFilter.processException(
                                          e,
                                          "com.ibm.ws.sib.processor.impl.ConnectionImpl.createSystemBrowserSession",
                                          "1:4363:1.347.1.25",
                                          this);
  
              SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                          new Object[] {
                                        "com.ibm.ws.sib.processor.impl.ConnectionImpl",
                                        "1:4369:1.347.1.25",
                                        e });
  
              SibTr.exception(tc, e);
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "createSystemBrowserSession", "SIErrorException");
  
              throw new SIErrorException(nls.getFormattedMessage(
                                                                 "INTERNAL_MESSAGING_ERROR_CWSIP0002",
                                                                 new Object[] { "ConnectionImpl",
                                                                               "1:4380:1.347.1.25",
                                                                               e },
                                                                 null),
                              e);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "createSystemBrowserSession", session);
  
          return session;
      }