docs: private BusHandler findBusInternal(String busName) throws SIResourceException, SINotPossibleInCurrentConfigurationException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "findBusInternal", new Object[] { busName });
  
          BusHandler busHandler = null;
  
          //Get the bus definition from admin
          ForeignBusDefinition foreignBusDefinition = messageProcessor.getForeignBus(busName);
  
          // Check that the bus exists
          checkBusExists(foreignBusDefinition != null, busName, false, null);
  
          VirtualLinkDefinition virtualLinkDefinition = null;
  
          synchronized (linkIndex)
          {
              // Find the link for the bus
              try
              {
                  virtualLinkDefinition = foreignBusDefinition.getLinkForNextHop();
              } catch (SIBExceptionBusNotFound e)
              {
                  // No FFDC code needed
  
                  checkBusExists(false, busName, false, e);
              } catch (SIBExceptionNoLinkExists e)
              {
                  // No FFDC code needed
  
                  checkBusExists(false, busName, true, e);
              }
  
              //Check that the VLD has localising MEs. If not, then return now with
              // an empty handler.
              Set localizingMEs = null;
              if (virtualLinkDefinition != null)
                  localizingMEs = virtualLinkDefinition.getLinkLocalitySet();
              if (localizingMEs == null || localizingMEs.isEmpty())
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      SibTr.debug(tc, "Empty/null localizing ME set");
  
                  //return null busHandler
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      SibTr.exit(tc, "findBusInternal", "null");
                  return null;
              }
  
              LinkTypeFilter filter = new LinkTypeFilter();
              filter.VISIBLE = Boolean.TRUE;
              LinkHandler linkHandler = (LinkHandler) linkIndex.findByName(virtualLinkDefinition.getName(), filter);
  
              if (linkHandler == null)
              {
                  // Create a local UOW
                  LocalTransaction siTran = txManager.createLocalTransaction(false);
  
                  // Try to create the remote link handler.
                  try
                  {
                      linkHandler = createRemoteLink(virtualLinkDefinition, siTran);
  
                      // If everything was succesful then commit the unit of work
                      siTran.commit();
                  } catch (SIException e)
                  {
                      // No FFDC code needed
  
                      SibTr.exception(tc, e);
  
                      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                          SibTr.exit(tc, "findBusInternal", e);
  
                      handleRollback(siTran);
  
                      SIMPResourceException ee = new SIMPResourceException(e);
                      ee.setExceptionReason(SIRCConstants.SIRC0901_INTERNAL_MESSAGING_ERROR);
                      ee.setExceptionInserts(new String[] { "com.ibm.ws.sib.processor.impl.DestinationManager",
                                                           "1:6515:1.508.1.7",
                                                           SIMPUtils.getStackTrace(e) });
                      throw ee;
                  }
              }
  
              // Try to create the bus handler.
              try
              {
                  busHandler =
                                  createForeignBus(linkHandler.getName(), linkHandler.getUuid().toString(), foreignBusDefinition);
              } catch (SIException e)
              {
                  // No FFDC code needed
                  SibTr.exception(tc, e);
  
                  // TO DO - handle this
                  // throw e;
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "findBusInternal", busHandler);
  
          return busHandler;
      }