docs: int guessFluffedDataSize() {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "guessFluffedDataSize");
  
      int total = 0;
  
      // If we have a fluffed up in memory map ...
      if (bodyMap != null) {
  
         // Add the overhead for the map itself.
         total += FLUFFED_MAP_OVERHEAD;
         // Also add on a constant guess for each map entry.
         total += bodyMap.size() * FLUFFED_MAP_ENTRY_SIZE;
      }
  
      // 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 fluffed names (which is a list)
          // .... and add double that to cater for the values
          total += part.estimateFieldValueSize(JmsMapBodyAccess.BODY_DATA_ENTRY_NAME) * 2;
        }
  
        // 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 map.
          int payloadSize = jmo.getPayloadPart().getAssembledLengthIfKnown();
          if (payloadSize != -1) {
            int flatMapSize = payloadSize-FLATTENED_PAYLOAD_PART;
            // It is a number of entries each of which will consist of a name+value.
            // They are probably mostly Strings. Let's say 15 chars for each name or value.
            int numEnts = flatMapSize / 30;
            if (numEnts > 0) {
              // Now we've decided how many entries we tink we might have,
              // calculate the likely fluffed size.
              total += FLUFFED_MAP_OVERHEAD;
              total += numEnts * FLUFFED_MAP_ENTRY_SIZE;
            }
          }
          // 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 {
            // Add the overhead for a fluffed up map
            total += FLUFFED_MAP_OVERHEAD;
            // .... get the estimate for the fluffed names (which is a list)
            // .... and add double that to cater for the values
            total += getPayload().estimateFieldValueSize(JmsMapBodyAccess.BODY_DATA_ENTRY_NAME) * 2;
          }
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "guessFluffedDataSize",  total);
      return total;
    }