docs: private void processConnectionInfo(CommsByteBuffer buffer, Conversation conversation)
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "processConnectionInfo",
                                             new Object[]{buffer, conversation});
  
        ClientConversationState convState = (ClientConversationState) conversation.getAttachment();
  
        short connectionObjectId = buffer.getShort();           // BIT16 ConnectionObjectID
        String meName = buffer.getString();                     // STR   MEName
  
        // Set the connection object ID in the conversation state
        convState.setConnectionObjectID(connectionObjectId);
  
        // Create the connection proxy and save it away in the conversation state
        final ConnectionProxy connectionProxy;
  
        // The type of connection proxy we create is dependent on FAP version.  Fap version 5 supports
        // a connection which MSSIXAResourceProvider.  This is done so that PEV (introduced in line with
        // FAP 5) can perform remote recovery of resources.
        if (conversation.getHandshakeProperties().getFapLevel() >= JFapChannelConstants.FAP_VERSION_5)
        {
           connectionProxy = new MSSIXAResourceProvidingConnectionProxy(conversation);
        }
        else
        {
           connectionProxy = new ConnectionProxy(conversation);
        }
  
        convState.setSICoreConnection(connectionProxy);
  
        // Set in the ME name
        connectionProxy.setMeName(meName);
  
        // Now get the unique Id if there was one, and set it in the connection proxy
        short idLength = buffer.getShort();
        if (idLength != 0)
        {
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Got unique id of length:", idLength);
  
           byte[] uniqueId = buffer.get(idLength);
  
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.bytes(tc, uniqueId);
  
           connectionProxy.setInitialUniqueId(uniqueId);
        }
        else
        {
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "No unique Id was returned");
        }
  
        // Get the ME Uuid
        String meUuid = buffer.getString();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "ME Uuid: ", meUuid);
        connectionProxy.setMeUuid(meUuid);
  
        // Get the resolved User Id
        String resolvedUserId = buffer.getString();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Resolved UserId: ", resolvedUserId);
        connectionProxy.setResolvedUserId(resolvedUserId);
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "processConnectionInfo");
     }