docs: int guessFluffedDataSize() {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "guessFluffedDataSize");
  
      int total = 0;
  
      // If we have a fluffed up in memory list ...
      if (bodyList != null) {
         // Add the overhead for the JsMsgList & its contained List
         total += FLUFFED_STREAM_LIST_OVERHEAD;
         // Guess each value has a data size of average 30, plus the Object overhead.
         // The actual size will be better for 'primitives' and worse for Strings
         total += bodyList.size() * (FLUFFED_OBJECT_OVERHEAD + 30);
      }
  
      // Figure out a guesstimate without fluffing up anything unnecessarily
      else {
  
        // Add the estimate for the fluffed payload size
        // If the body's JMF message is already fluffed up & cached, ask it for the size.
        // Do NOT hold on to this JSMsgPart, as it could lose validity at any time.
        JsMsgPart part = getPayloadIfFluffed();
        if (part != null) {
          // .... get the estimate for the list when fluffed
          total += part.estimateFieldValueSize(JmsStreamBodyAccess.BODY_DATA_VALUE);
        }
  
        // If the JMF message hasn't been fluffed up, find the total assembled length of
        // the payload message if possible.
        else {
          // If we have a valid length, remove a bit & assume the rest is the encoded list.
          int payloadSize = jmo.getPayloadPart().getAssembledLengthIfKnown();
          if (payloadSize != -1) {
            int flatListSize = payloadSize-FLATTENED_PAYLOAD_PART;
            // It is a number of entries which are probably mostly Strings. Let's say 15 chars each name.
            int numEnts = flatListSize / 15;
            if (numEnts > 0) {
              // Assume in UTF8, and add overhead for a Strings per entry: so 30 for chars, 56 for overhead
              // plus the overhead of a JMF Lists (at 72 each).
              total += numEnts*86 + 72;
            }
          }
          // If the payloadSize == -1, then the body message must have been fluffed up
          // but not yet cached, so we'll locate & cache it now.
          else {
            // .... get the estimate for the list when fluffed
            total += getPayload().estimateFieldValueSize(JmsStreamBodyAccess.BODY_DATA_VALUE);
          }
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "guessFluffedDataSize",  total);
      return total;
    }