docs: private void parseConversationPayload(WsByteBuffer contextBuffer)
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "parseConversationPayload", contextBuffer);
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) JFapUtils.debugTraceWsByteBufferInfo(this, tc, contextBuffer, "contextBuffer");
  
        if (unparsedPayloadData == null)
        {
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "allocating unparsed data buffer, size="+transmissionPayloadDataLength);
  
           unparsedPayloadData = allocateWsByteBuffer(transmissionPayloadDataLength, primaryHeaderFields.isPooled);
           unparsedPayloadData.position(0);
           unparsedPayloadData.limit(transmissionPayloadDataLength);
        }
  
        if (state != STATE_ERROR)
        {
           int unparsedDataRemaining = unparsedPayloadData.remaining();
           int amountCopied =
              JFapUtils.copyWsByteBuffer(contextBuffer, unparsedPayloadData, unparsedDataRemaining);
  
           if (amountCopied == unparsedDataRemaining)
           {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "dispatching to conversation - amount cpoied = "+amountCopied);
              dispatchToConversation(unparsedPayloadData);
              if (state != STATE_ERROR)
                 reset();
           }
           else
           {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "need more data");
              needMoreData = true;
           }
        }
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "parseConversationPayload");
     }