docs: private void rcvDirectConnect(CommsByteBuffer request, Conversation conversation, int requestNumber,
                                    boolean allocatedFromBufferPool, boolean partOfExchange) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "rcvDirectConnect",
                          new Object[]
                          {
                           request,
                           conversation,
                           Integer.valueOf(requestNumber),
                           Boolean.valueOf(allocatedFromBufferPool),
                           Boolean.valueOf(partOfExchange)
                          });
  
          ConversationState convState = (ConversationState) conversation.getAttachment();
  
          /**************************************************************/
          /* ME Name */
          /**************************************************************/
          String meName = request.getString();
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              SibTr.debug(this, tc, "Me Name", meName);
  
          /**************************************************************/
          /* Bus Name */
          /**************************************************************/
          String busName = request.getString();
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              SibTr.debug(this, tc, "Bus Name", busName);
  
          /**************************************************************/
          /* User Id */
          /**************************************************************/
          String userId = request.getString();
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              SibTr.debug(this, tc, "User Id", userId);
  
          /**************************************************************/
          /* Password */
          /**************************************************************/
          String password = request.getString();
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              SibTr.debug(this, tc, "Password", "****");
  
          //Liberty COMMS TODO
          // Has to be replaced with proper security code
          // For now just have some dummy subject as this flow would not get called in any of current functionality
          // First authenticate the user
  
          /*
           * SibLoginFactory loginFactory = SibLoginFactory.getInstance();
           * final ConnectionMetaData loginMetaData = new ConnectionMetaDataImpl(conversation.getMetaData(), null);
           * Subject subject = loginFactory.createNewSibLogin().login(busName,
           * userId,
           * password,
           * loginMetaData);
           */
          Subject subject = new Subject();
  
          if (subject == null) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(this, tc, "Authentication failed");
  
              StaticCATHelper.sendExceptionToClient(new SIAuthenticationException(null),
                                                    null,
                                                    conversation,
                                                    requestNumber);
          } else {
              // Now invoke the Direct connection method
              TrmSingleton trmSingleton = TrmSingleton.getTrmSingleton();
              ComponentData componentData = (ComponentData) trmSingleton.getComponentData();
              ConnectionMetaDataImpl metaData =
                              new ConnectionMetaDataImpl(conversation.getMetaData(), conversation.getHandshakeProperties());
              DirectConnectionImpl connProps = new DirectConnectionImpl(metaData);
              connProps.setBus(busName);
              connProps.setName(meName);
  
              boolean rc = componentData.directConnect(connProps, subject);
              SICoreConnection conn = connProps.getSICoreConnection();
  
              if (!rc || conn == null) {
                  // TRM failed to locate an ME or Bus for us
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      SibTr.debug(this, tc, "TRM did not allocate us a connection");
  
                  StaticCATHelper.sendExceptionToClient(new SIResourceException(),
                                                        null,
                                                        conversation,
                                                        requestNumber);
              } else {
                  try {
                      // Otherwise we got a connection ok, so stash it in the object store
                      ServerSideConnection cc = new ServerSideConnection(conversation);
                      convState.setCommsConnection(cc);
                      convState.addObject(cc);
  
                      // Save the SICoreConnection
                      short objId = (short) convState.addObject(new CATConnection(conn));
                      convState.setConnectionObjectId(objId);
  
                      cc.setSICoreConnection(conn);
  
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          SibTr.debug(this, tc, "SICoreConnection object ID", "" + objId);
  
                      // Register the connection listener
                      attachConnectionListener(conversation, conn);
  
                      // Also grab the unique message id stem
                      byte[] idStem = conn.createUniqueId();
  
                      // Now send back a reply
                      CommsByteBuffer reply = poolManager.allocate();
                      reply.putShort(objId);
                      reply.putShort((short) idStem.length);
                      reply.put(idStem);
  
                      try {
                          conversation.send(reply,
                                            JFapChannelConstants.SEG_DIRECT_CONNECT_R,
                                            requestNumber,
                                            JFapChannelConstants.PRIORITY_MEDIUM,
                                            true,
                                            ThrottlingPolicy.BLOCK_THREAD,
                                            null);
                      } catch (SIException e) {
                          FFDCFilter.processException(e,
                                                      CLASS_NAME + ".,rcvDirectConnect",
                                                      CommsConstants.SERVERTRANSPORTRECEIVELISTENER_DIRECTCN_02,
                                                      this);
  
                          SibTr.error(tc, "COMMUNICATION_ERROR_SICO2019", e);
                      }
                  } catch (ConversationStateFullException e) {
                      FFDCFilter.processException(e,
                                                  CLASS_NAME + ".,rcvDirectConnect",
                                                  CommsConstants.SERVERTRANSPORTRECEIVELISTENER_DIRECTCN_01,
                                                  this);
  
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          SibTr.debug(this, tc, e.getMessage(), e);
  
                      StaticCATHelper.sendExceptionToClient(e,
                                                            CommsConstants.SERVERTRANSPORTRECEIVELISTENER_DIRECTCN_01,
                                                            conversation, requestNumber);
                  } catch (SIException e) {
                      FFDCFilter.processException(e,
                                                  CLASS_NAME + ".,rcvDirectConnect",
                                                  CommsConstants.SERVERTRANSPORTRECEIVELISTENER_DIRECTCN_03,
                                                  this);
  
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          SibTr.debug(this, tc, e.getMessage(), e);
  
                      StaticCATHelper.sendExceptionToClient(e,
                                                            CommsConstants.SERVERTRANSPORTRECEIVELISTENER_DIRECTCN_03,
                                                            conversation, requestNumber);
                  }
              }
          }
  
          request.release(allocatedFromBufferPool);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "rcvDirectConnect");
      }