docs: private synchronized LogRecord cacheTraceData(String data) {
          // If the data size, plus the size of any data already cached is too
          // large the event must
          // be fired. Return the event to the caller.
          // Assume a data size of 2 x "null".length() for null data
          int size = (data == null) ? 8 : data.length() * 2;
          if (ivCacheSize + size > svMaxCacheSize) {
              return getTraceData(data);
          }
  
          if (endsWithLineSeparator(data)) {
              return getTraceData(data);
          }
  
          // Data can be cached. If "root" event does not exist, this should be
          // the first operation
          // in the sequence. Create the event. If event already exists, add data
          // to the cache.
          buffer.append(data);
          ivCacheSize += size;
          return null;
      }