code: SubscriptionMessageHandler addLocalSubscription(
      ConsumerDispatcherState subState,
      SubscriptionMessageHandler messageHandler,
      Transaction transaction,
      boolean sendProxy) throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc,
          "addLocalSubscription",
          new Object[] {
            subState,
            messageHandler,
            transaction,
            new Boolean(sendProxy)});
  
      // This method will have been called by the local MP when registering
      // a local Subscription.
      messageHandler = addSubscription(subState.getTopicSpaceName(),
                                       subState.getTopicSpaceUuid(),
                                       subState.getTopic(),                                  
                                       messageHandler,
                                       iLocalSubscriptions,
                                       sendProxy);
  
      // If the message handler is not null then send the message to all the neighbours
      if (messageHandler != null && sendProxy)
        sendToNeighbours(messageHandler.getSubscriptionMessage(), transaction, false);
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "addLocalSubscription", messageHandler);
  
      return messageHandler;
    }
docs: Called when a subscribe needs to be propagated to the group.
  <p>
  The addSubscription puts the subscription into the list of
  Subscriptions that have been propagated to this Bus.
  
  @param subState        The subscription that was created.
  @param messageHandler  The subscriptionMessage that will be used for
  sending to Neighbouring ME's
  @param transaction     The transaction object to create the subscription with
  @param sendProxy       Indicates whether to send proxy messages.
  
  @return SubscriptionMessageHandler  The new subscription message handler
  if one was created.