{
if (SanityManager.DEBUG)
SanityManager.ASSERT(a.length >= CONTAINER_INFO_SIZE,
"header won't fit in array");
ArrayOutputStream a_out = new ArrayOutputStream(a);
FormatIdOutputStream outStream = new FormatIdOutputStream(a_out);
int status = 0;
if (getDroppedState()) status |= FILE_DROPPED;
if (getCommittedDropState()) status |= FILE_COMMITTED_DROP;
if (isReusableRecordId()) status |= FILE_REUSABLE_RECORDID;
a_out.setPosition(0);
a_out.setLimit(CONTAINER_INFO_SIZE);
outStream.writeInt(formatIdInteger);
outStream.writeInt(status);
outStream.writeInt(pageSize);
outStream.writeInt(spareSpace);
outStream.writeInt(minimumRecordSize);
outStream.writeShort(initialPages);
outStream.writeShort(PreAllocSize); // write spare1
outStream.writeLong(firstAllocPageNumber);
outStream.writeLong(firstAllocPageOffset);
outStream.writeLong(containerVersion);
outStream.writeLong(estimatedRowCount);
outStream.writeLong(reusableRecordIdSequenceNumber);
outStream.writeLong(0); //Write spare3
checksum.reset();
checksum.update(a, 0, CONTAINER_INFO_SIZE - CHECKSUM_SIZE);
// write the checksum to the array
outStream.writeLong(checksum.getValue());
a_out.clearLimit();
}