text: public int fillFields(byte[] data, int pOffset, EscherRecordFactory recordFactory) {int bytesRemaining = readHeader(data, pOffset);int bytesWritten = 8;int offset = pOffset + 8;while (bytesRemaining > 0 && offset < data.length) {EscherRecord child = recordFactory.createRecord(data, offset);int childBytesWritten = child.fillFields(data, offset, recordFactory);bytesWritten += childBytesWritten;offset += childBytesWritten;bytesRemaining -= childBytesWritten;addChildRecord(child);if (offset >= data.length && bytesRemaining > 0) {_remainingLength = bytesRemaining;if (log.check(POILogger.WARN)) {log.log(POILogger.WARN, "Not enough Escher data: " + bytesRemaining + " bytes remaining but no space left");}}}return bytesWritten;}