code: public synchronized PubSubOutputHandler createPubSubOutputHandler(Neighbour neighbour)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "createPubSubOutputHandler", new Object[] { neighbour });
  
          // Check that this handler wasn't already created.
          PubSubOutputHandler handler = getPubSubOutputHandler(neighbour.getUUID());
  
          if (handler == null)
              handler =
                              new PubSubOutputHandler(
                                              _messageProcessor,
                                              neighbour,
                                              _baseDestinationHandler);
  
          _pubsubOutputHandlerLockManager.lockExclusive();
          // Put this outputhandler into the list of handlers.
          _pubsubOutputHandlers.put(neighbour.getUUID(), handler);
          _pubsubOutputHandlerLockManager.unlockExclusive();
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "createPubSubOutputHandler", handler);
  
          return handler;
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.ws.sib.processor.impl.interfaces.DestinationHandler#createPubSubOutputHandler(com.ibm.ws.sib.processor.proxyhandler.Neighbour)