docs: private void removeRegisteredProxies(Neighbour neighbour, 
        Transaction transaction,
                                         boolean wasRecovered) throws SIResourceException 
                                         
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "removeRegisteredProxies", 
          new Object[] { neighbour, transaction, new Boolean(wasRecovered) } );
  
      // Get all the proxies that this Neighbour has registered
      final Hashtable registeredProxies = neighbour.getRegisteredProxies();
  
      // Check that there is actually some proxies to remove.
      if (!registeredProxies.isEmpty())
      {
        boolean proxiesDeregistered = false;
  
        final Enumeration subscriptions = registeredProxies.elements();
  
        final ArrayList topics = new ArrayList();
        final ArrayList topicSpaces = new ArrayList();
  
        // Loop through each of the subscriptions that where registered and
        // remove them.
        while (subscriptions.hasMoreElements())
        {
          final MESubscription subscription =
            (MESubscription) subscriptions.nextElement();
            
          // Remove the proxy from the list of proxies for this Neighbour.
          neighbour.proxyDeregistered(subscription.getTopicSpaceUuid(), 
                                      subscription.getTopic(), 
                                      transaction);
          
          DestinationHandler destination = 
            _destinationManager.getDestinationInternal(subscription.getTopicSpaceUuid(), false); 
          
          // delete the proxy subscription
          final boolean deleted =
            deleteProxy(
              destination,
              subscription,
              neighbour,
              subscription.getTopicSpaceUuid(),
              subscription.getTopic(),
              wasRecovered,
              true);
              
  
          // If a PubSubOutputHandler is deleted, then add this topic and
          // topic space to the set to be fed through the topic space deleted 
          // event.   
          if (deleted)
          {          
            topics.add(subscription.getTopic());
            topicSpaces.add(subscription.getTopicSpaceUuid());
  
            proxiesDeregistered = true;
          }
  
        }
  
        // If there were any proxies removed, then call the proxy handler code to 
        // publish that these subscriptions have been deleted
        if (proxiesDeregistered && wasRecovered)
        {
          _proxyHandler.unsubscribeEvent(
            topicSpaces,
            topics,
            neighbour.getBusId(),
            null);
        }
  
  
      }
      else
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          SibTr.debug(
            tc,
            "no proxies registered for neighbour " + neighbour.getUUID().toString());
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "removeRegisteredProxies");
    }