code: private Conversation startNewConversation(ConnectionData connectionDataToUse, ConversationReceiveListener conversationReceiveListener, boolean isNewConnectionData,
                                                boolean handshake) throws SIResourceException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "startNewConversation",
                          new Object[] { connectionDataToUse, conversationReceiveListener, Boolean.valueOf(isNewConnectionData), Boolean.valueOf(handshake) });
  
          Conversation retConversation;
          synchronized (this)
          {
              if (isNewConnectionData)
              {
                  synchronized (connectionData)
                  {
                      connectionData.add(connectionDataToUse);
                  }
              }
  
              // Start a new conversation over the designated connection.
              // If this is a connection on behalf of the WMQRA then we need to disable the normal handshaking behaviour
              // in order to allow other non WMQRA conversations to handshake as normal.
              retConversation = connectionDataToUse.getConnection().startNewConversation(conversationReceiveListener, handshake);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "startNewConversation", retConversation);
          return retConversation;
      }
docs: start a new conversation using the specified ConnectionData object
  
  @param connectionDataToUse The connection data on which to start a new conversation
  @param conversationReceiveListener The conversation receive listener for the new conversation
  @param isNewConnectionData Does the connection data still need to be added to the group?
  @param handshake Can the conversation use normal handshaking?
  @return Conversation The new conversation
  @throws SIResourceException is thrown if the new conversation cannot be started