code: protected void setData(byte[] data)
      {
          if (tc.isEntryEnabled()) Tr.entry(tc, "setData", new Object[] {RLSUtils.toHexString(data, RLSUtils.MAX_DISPLAY_BYTES), this});
      
          int totalDataSize = _dataSize + HEADER_SIZE;
          
          int unwrittenDataSize = 0;
          
          if (!_written)
          {
              unwrittenDataSize = totalDataSize;
          }
          
          // Remove the old payload from the containing recoverable
          // unit section.
          _rus.payloadDeleted(totalDataSize, unwrittenDataSize);        
          
          // Cache the new data and flag that the encapsulated data
          // has not been written to disk.
          _data = data;
          _dataSize = data.length;
          _filePosition = UNWRITTEN;
          _written = false;      
      
          // Add the new payload to the containing recoverable
          // unit section.
          _rus.payloadAdded(_data.length + HEADER_SIZE);
             
          if (tc.isEntryEnabled()) Tr.exit(tc, "setData");    
      }
docs: Update the data being encapsulated by this SingleDataItem. Following a setData
  call this data item's payload will reflect the size of new data and if the
  new data was a different size to the old data the containing recoverable unit
  section's payload will have been adjusted accordingly.
  @param data The data to be encapsulated by this SingleDataItem instance