docs: public void addData(byte[] data) throws InternalLogException
    {
      if (tc.isEntryEnabled()) Tr.entry(tc, "addData",new java.lang.Object[] {RLSUtils.toHexString(data,RLSUtils.MAX_DISPLAY_BYTES), this});
  
      // If the parent recovery log instance has experienced a serious internal error then prevent
      // this operation from executing.
      if (_recLog.failed())
      {
        if (tc.isEntryEnabled()) Tr.exit(tc, "addData",this);
        throw new InternalLogException(null);
      }
  
      if (_singleData)
      {
          // This recoverable unit section can hold only a single data item.
          if (tc.isDebugEnabled()) Tr.debug(tc, "Section can hold only a single data item.");
  
          if (_writtenData.size() > 0)
          { 
              // It already contains written data. This must be replaced.
              if (tc.isDebugEnabled()) Tr.debug(tc, "There is existing WRITTEN data.");
   
              // Clear out the written data array and move this into the unwritten data array
              _writtenData.clear();
              _unwrittenData.add(0, data);
              _singleDataUpdated = true;
   
              // Ensure that the last data reference is accurate.
              _lastDataItem = data;
          }
          else if (_unwrittenData.size() > 0)
          { 
              // It already contains unwritten data. This must be replaced.
              if (tc.isDebugEnabled()) Tr.debug(tc, "There is existing UNWRITTEN data.");
   
              _unwrittenData.clear();
              _unwrittenData.add(0, data);
   
              // Ensure that the last data reference is accurate.
              _lastDataItem = data;
          }
          else
          {
              // It contains no existing data. Create a new DataItem wrapper
              if (tc.isDebugEnabled()) Tr.debug(tc, "There is no existing data.");
   
              _unwrittenData.add(0, data);
              _lastDataItem = data; 
          }
      }
      else
      {
          // This recoverable unit section can hold multiple data item.
          if (tc.isDebugEnabled()) Tr.debug(tc, "Section holds multiple data items");
  
          _unwrittenData.add(data);
          _lastDataItem = data;
      } 
    
      if (tc.isEntryEnabled()) Tr.exit(tc, "addData");
    }