code: void removeTopicSpaceReference(
      SIBUuid8 neighbourUuid,
      MESubscription subscription,
      SIBUuid12 topicSpace,
      String topic)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc,
          "removeTopicSpaceReference",
          new Object[] { neighbourUuid, subscription, topicSpace, topic });
  
      // Synchronize around the topic space references to stop removal and
      // additions occuring at the same time. 
      synchronized (_topicSpaces)
      {
        // From the list of topic spaces, get the HashMap that contains the 
        // list of topicSpaces to topics.
        final TemporarySubscription sub =
          (TemporarySubscription) _topicSpaces.get(topicSpace);
  
        if (sub == null)
        {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            SibTr.debug(
              tc,
              "TemporarySubscription not found");
        }
        else
        {
          // Remove a topic to the list of topics on this topic space for this ME
          if (sub.removeTopic(neighbourUuid, subscription))
            // If the topicSpace is empty of topics, then remove the topicSpace from
            // list of topic spaces.
            _topicSpaces.remove(topicSpace);
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "removeTopicSpaceReference");
    }
docs: Removes the topic space reference for the given ME on the given topic.
  
  @param neighbourUuid the uuid of the remote ME
  @param subscription  The subscription object representing this proxy
  @param topicSpace  the name of the topic space destination
  @param topic  The topic registered.