docs: public JsDestinationAddress createSystemDestination(String prefix, Reliability reliability) throws SIResourceException, SIMPDestinationAlreadyExistsException, SIIncorrectCallException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "createSystemDestination", new Object[] { prefix, reliability });
  
          //there is no detailed prefix validation here as System Destinations are purely
          //internal
          if (prefix == null || prefix.length() > 24)
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "createSystemDestination", "SIInvalidDestinationPrefixException");
  
              SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0005",
                          new Object[] { "com.ibm.ws.sib.processor.impl.DestinationManager", "1:5324:1.508.1.7", prefix });
  
              throw new SIInvalidDestinationPrefixException(
                              nls.getFormattedMessage(
                                                      "INTERNAL_MESSAGING_ERROR_CWSIP0005",
                                                      new Object[] { "com.ibm.ws.sib.processor.impl.DestinationManager", "1:5329:1.508.1.7", prefix },
                                                      null));
          }
          JsDestinationAddress destAddr =
                          SIMPUtils.createJsSystemDestinationAddress(prefix, messageProcessor.getMessagingEngineUuid());
  
          destAddr.setBusName(messageProcessor.getMessagingEngineBus());
  
          // Check and see if the destination already exists.
          //note that this is treated as an application call so we don't want to see
          //those that are being deleted
          DestinationHandler handler = getDestinationInternal(destAddr.getDestinationName(), destAddr.getBusName(), false);
          if (handler != null)
          {
              // The system destination exists for the destination prefix set so
              // just return.
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "createSystemDestination", destAddr);
  
              return destAddr;
          }
  
          DestinationDefinition destDef =
                          messageProcessor.createDestinationDefinition(DestinationType.QUEUE, destAddr.getDestinationName());
          destDef.setMaxReliability(reliability);
          destDef.setDefaultReliability(reliability);
          destDef.setUUID(new SIBUuid12());
  
          Set<String> destinationLocalizingSet = new HashSet<String>();
          destinationLocalizingSet.add(messageProcessor.getMessagingEngineUuid().toString());
  
          createDestinationLocalization(
                                        destDef,
                                        messageProcessor.createLocalizationDefinition(destDef.getName()),
                                        destinationLocalizingSet,
                                        false);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "createSystemDestination", destAddr);
  
          return destAddr;
      }