docs: public static ControlNotFlushed issueCreateStreamRequest(
      MessageProcessor MP,
      ConsumerDispatcherState subState,
      SIBUuid12 destID,
      SIBUuid8 destME)
      throws SIResourceException,
             SIDestinationLockedException,
             SIDurableSubscriptionNotFoundException,
             SINotAuthorizedException, 
             SIDurableSubscriptionMismatchException
    {   
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "issueCreateStreamRequest", new Object[] {MP, subState, destID});
            
      long           requestID = MP.nextTick();
      SIBUuid8       durHomeID = destME;
      ControlMessage msg       = createDurableCreateStream(MP, subState, requestID, durHomeID);
      
      // attach requires a destination ID
      msg.setGuaranteedTargetDestinationDefinitionUUID(destID);
      
      Object result = 
        issueRequest(MP, msg, durHomeID,
                     CREATESTREAM_RETRY_TIMEOUT, -1, // 219870: retry forever, otherwise use CREATESTREAM_NUMTRIES,
                     requestID);
        
      // If we get a ControlNotFlushed, return a new destination
      // otherwise throw an exception.
      if (result == null)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
          SibTr.exit(tc, "issueCreateStreamRequest", "SIResourceException");
        // Gave up because ME unreachable
        throw new SIResourceException(
          nls.getFormattedMessage(
            "REMOTE_DURABLE_TIMEOUT_ERROR_CWSIP0631",
            new Object[] {
              "attach",
              subState.getSubscriberID(), 
              subState.getDurableHome()},
            null));
      }
      
      if (result instanceof ControlCardinalityInfo)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
          SibTr.exit(tc, "issueCreateStreamRequest", "SIDurableSubscriptionLockedException");
        // Subscription already has an attachment
        throw new SIDestinationLockedException(
          nls.getFormattedMessage(
            "SUBSCRIPTION_IN_USE_ERROR_CWSIP0152", 
            new Object[] { subState.getSubscriberID(),
                           subState.getDurableHome()}, 
            null));
      } 
      else if (result instanceof ControlDurableConfirm)
      {
        // Throw exception based on status info
        int status = ((ControlDurableConfirm) result).getStatus();
        
        if (status == DurableConstants.STATUS_SUB_NOT_FOUND)
        { 
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
            SibTr.exit(tc, "issueCreateStreamRequest", "SIDurableSubscriptionNotFoundException"); 
          // not found error      
          throw new SIDurableSubscriptionNotFoundException(
            nls.getFormattedMessage(
              "SUBSCRIPTION_DOESNT_EXIST_ERROR_CWSIP0146",
              new Object[] { subState.getSubscriberID(),
                             subState.getDurableHome() },
              null));
        }
        else if(status == DurableConstants.STATUS_NOT_AUTH_ERROR)
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
            SibTr.exit(tc, "issueCreateStreamRequest", "SINotAuthorizedException"); 
          // not auth error      
          throw new SINotAuthorizedException(
            nls.getFormattedMessage(
              "USER_NOT_AUTH_ACTIVATE_ERROR_CWSIP0312",
              new Object[] { subState.getUser(), subState.getSubscriberID(), subState.getTopicSpaceUuid() },
              null));          
        }
        else if(status == DurableConstants.STATUS_SUB_MISMATCH_ERROR)
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
            SibTr.exit(tc, "issueCreateStreamRequest", "SIDurableSubscriptionMismatchException"); 
          // durable mismatch error  
          throw new SIDurableSubscriptionMismatchException(
              nls.getFormattedMessage(
                "SUBSCRIPTION_ALREADY_EXISTS_ERROR_CWSIP0143",
                new Object[] { subState.getSubscriberID(),
                               subState.getDurableHome()},
                null));
        }
        
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
          SibTr.exit(tc, "issueCreateStreamRequest", "SIErrorException");
          
        SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0001",
          new Object[] {
            "com.ibm.ws.sib.processor.impl.DurableInputHandler",
            "1:751:1.52.1.1" });
        // Anything else is a general error
        throw new SIErrorException(
          nls.getFormattedMessage(
            "INTERNAL_MESSAGING_ERROR_CWSIP0001",
            new Object[] {
              "com.ibm.ws.sib.processor.impl.DurableInputHandler",
              "1:758:1.52.1.1" },
            null));
      }
      
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "issueCreateStreamRequest", result);
        
      return (ControlNotFlushed) result;
    }