docs: protected boolean deleteProxy(
      DestinationHandler destination,
      MESubscription subscription,
      Neighbour neighbour,
      SIBUuid12 topicSpace, 
      String topic,
      boolean wasRecovered,
      boolean deleteHandler )
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc,
          "deleteProxy",
          new Object[] { destination, neighbour, subscription, topicSpace, topic });
  
      boolean outputHandlerDeleted = false;
      /* 
       * If the destination object is not null, then we can remove
       * the PubSubOutputHandler for this Neighbour for this topic.
       */
      if (destination != null)
      {
        PubSubOutputHandler handler = destination.getPubSubOutputHandler(neighbour.getUUID());
  
        // If the handler is null, then it has already been removed, 
        // otherwise need to remove this instance from the MatchSpace.
        if (handler != null)
        {
          // Remove the topic from the output handler.
          handler.removeTopic(topic);
        
          // If we were asked not to delete the PubSubOuptutHandler then pass null into 
          // registerForPostCommit() which will prevent the eventPostRemove code from deleting it  
          if( !deleteHandler )  
            handler = null;
            
          // Register for a commit, but only if the neighbour is in the active state.
          if (wasRecovered)
            subscription.registerForPostCommit(_proxyHandler, destination, handler, neighbour);
          else
            subscription.registerForPostCommit(null, destination, handler, neighbour);          
  
          outputHandlerDeleted = true;
        }
        else
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            SibTr.debug(tc, "PubSubOutputHandler not found");
      }
      else
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(tc, "Destination object not found");
          
        // Register on the subscription
        if (wasRecovered)
          subscription.registerForPostCommit(neighbour, this);
        else
          subscription.registerForPostCommit(null, destination, null, neighbour);
  
        // Clear up the topic Space references for this topic on this ME.
        removeTopicSpaceReference(neighbour.getUUID(), subscription, topicSpace, topic);
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "deleteProxy", new Boolean(outputHandlerDeleted));
  
      return outputHandlerDeleted;
    }