docs: void topicSpaceCreated(DestinationHandler destination) throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "topicSpaceCreated", destination);
  
      // Synchronize around the topic space references to stop removal and
      // additions occuring at the same time. 
      synchronized (_topicSpaces)
      {
        // There are some proxies to register
        if (_topicSpaces.containsKey(destination.getUuid()))
        {
          final ArrayList topicSpacesCreated = new ArrayList();
          final ArrayList topicsCreated = new ArrayList();
  
          final TemporarySubscription tsubscription =
            (TemporarySubscription) _topicSpaces.get(destination.getUuid());
  
          // Get the list of all the subscriptions.
          final Iterator neighbourUuids = tsubscription.iMETopicList.keySet().iterator();
  
          // Iterate through the list of meNames to create PubSubOutputHandlers on.
          while (neighbourUuids.hasNext())
          {
            // Reset the created topicSpaces
            topicSpacesCreated.clear();
  
            // Reset the created topics
            topicsCreated.clear();
  
            // Get the next ME name.
            final SIBUuid8 neighbourUuid = (SIBUuid8) neighbourUuids.next();
  
            // Get the set of subscriptions that have been registered
            final Iterator subscriptions =
              ((List) tsubscription.iMETopicList.get(neighbourUuid)).iterator();
  
            Neighbour neighbour = getNeighbour(neighbourUuid);
            // Need a flag to indicate if this neighbour is
            // a recovered one or not.
            boolean recoveredNeighbour = (neighbour == null);
            
            // If the Neighbour wasn't found in the real list, check the recovered list as this may
            // contain it.
            if (neighbour == null)
            {
              synchronized(_recoveredNeighbours)
              {
                neighbour = (Neighbour)_recoveredNeighbours.get(neighbourUuid);
              }
            }
  
            // Iterate of the set of topics
            while (subscriptions.hasNext())
            {
              // Get the next topic.
              final MESubscription subscription = (MESubscription) subscriptions.next();
  
              // Create the proxy - this will get the create Destination
              // and attach a PubSubOutputHandler.
              final boolean proxyCreated =
                createProxy(neighbour, 
                            destination, 
                            subscription,
                            destination.getUuid(), 
                            subscription.getTopic(),
                            false);
                            
              try
              {
                // Add to MatchSpace, but only if it isn't a recovered neighbour.
                if (!recoveredNeighbour)
                  subscription.eventPostCommitAdd(null);
              }
              catch (SevereMessageStoreException e)
              {
                // No FFDC code needed
                // Can never occur
              }
  
              // If the proxy is created, then we need to publish the event message
              // to any neighbours that are interested
              if (proxyCreated)
              {
                if (!recoveredNeighbour)
                {
                  // Add the topicSpace and topic to the set of created topics.
                  topicSpacesCreated.add(destination.getUuid());
                  topicsCreated.add(subscription.getTopic());
                }
                else
                {
                  // Add the OutputHandler to the list of known handlers.
                  PubSubOutputHandler h = destination.getPubSubOutputHandler(neighbour.getUUID());
                  neighbour.addPubSubOutputHandler(h);            
                }
              }
              else
              {
                // This is an error situation, as the destination now exists, 
                // so the proxy should have been created.
                final SIErrorException e =
                  new SIErrorException(nls.getFormattedMessage(
                    "INTERNAL_MESSAGING_ERROR_CWSIP0001",
                    new Object[] {
                      "com.ibm.ws.sib.processor.proxyhandler.Neighbours",
                      "1:463:1.113" },
                    null));
                
                FFDCFilter.processException(
                  e,
                  "com.ibm.ws.sib.processor.proxyhandler.Neighbours.topicSpaceCreated",
                  "1:469:1.113",
                  this);
                  
                if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "topicSpaceCreated", e);  
                throw e;
              }
            }
  
            // Send the event message to the Neighbours interested
            // Get the Neighbour that represents this meName.
            _proxyHandler.subscribeEvent(
              topicSpacesCreated,
              topicsCreated,
              neighbour.getBusId(),
              null);
          }
  
          // Remove the Temporary subscriptions from the list.
          _topicSpaces.remove(destination.getUuid());
        }
        else
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            SibTr.debug(tc, "No proxy subscriptions to register");
        }
  
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "topicSpaceCreated");
    }