docs: public SubscriptionDefinition querySubscription(String subId) 
    throws SIDurableSubscriptionNotFoundException, SINotPossibleInCurrentConfigurationException, SIIncorrectCallException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "querySubscription", subId);
  
      checkStarted();
      
      if (subId == null)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.exit(tc, "querySubscription", "Exception SubId null");
  
        throw new SIIncorrectCallException(
          nls.getFormattedMessage(
            "SUBSCRIPTION_DOESNT_EXIST_ERROR_CWSIP0072",
            new Object[] { null,
                           messageProcessor.getMessagingEngineName() },
            null));
      }
  
      ConsumerDispatcherState subState = null;
      HashMap durableSubs = destinationManager.getDurableSubscriptionsTable();
  
      synchronized (durableSubs)
      {
        //Look up the consumer dispatcher for this subId in the system durable subs list
        ConsumerDispatcher cd = (ConsumerDispatcher) durableSubs.get(subId);
  
        if (cd == null)
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "querySubscription", "Subscription not found");
  
          throw new SIDurableSubscriptionNotFoundException(
            nls.getFormattedMessage(
              "SUBSCRIPTION_DOESNT_EXIST_ERROR_CWSIP0072",
              new Object[] { subId,
                             messageProcessor.getMessagingEngineName() },
              null));
        }
  
        // Obtain the subscription state from the consumer dispatcher
        subState = cd.getConsumerDispatcherState();
      }
      
      DestinationHandler dest = null;
      try
      {    
        dest = 
          destinationManager.getDestination(subState.getTopicSpaceUuid(), true);
      }
      catch (SITemporaryDestinationNotFoundException e)
      {
        // No FFDC code needed 
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "querySubscription", "SINotPossibleInCurrentConfigurationException");
        throw new SINotPossibleInCurrentConfigurationException(e.getMessage());
      }
  
      // Create subscription definition
      SubscriptionDefinition subDef =
        new SubscriptionDefinitionImpl(
          dest.getName(),
          subState.getSelectionCriteria().getDiscriminator(),
          subState.getSelectionCriteria().getSelectorString(),
          subState.getSelectionCriteria().getSelectorDomain().toInt(),
          subState.getUser(),
          subState.isNoLocal(),
          subState.getDurableHome());
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "querySubscription", subDef);
  
      return subDef;
    }