code: DataFrameRecord.RecordInfo endRecord() throws IOException, DurableDataLogException {
          DataFrameRecord.RecordInfo r = this.currentRecordBuilder.build();
          while (this.currentEntry != null) {
              if (this.currentEntry.isLastRecordEntry()) {
                  this.currentEntry.getData().close();
                  resetContext();
              } else {
                  fetchNextEntry();
              }
          }
          return r;
      }
docs: Indicates that the current record has finished processing. When invoked, the DataFrameInputStream will be repositioned
  at the start of the next record. This method only needs to be called upon a successful record read. If an IOException
  occurred while reading data from a record, either the DataFrameInputStream will be auto-closed or a subsequent call
  to beginRecord() will reposition the stream accordingly.
  
  @return A RecordInfo containing metadata about the record that just ended, such as addressing information.
  @throws IOException If an IO Exception occurred.
  @throws DurableDataLogException If a non-IO Exception has occurred, usually thrown by the underlying DurableDataLog.