protected void readLoca() throws IOException, DocumentException {
int tableLocation[];
tableLocation = (int[])tableDirectory.get("head");
if (tableLocation == null)
throw new DocumentException(MessageLocalization.getComposedMessage("table.1.does.not.exist.in.2", "head", fileName));
rf.seek(tableLocation[TABLE_OFFSET] + HEAD_LOCA_FORMAT_OFFSET);
locaShortTable = (rf.readUnsignedShort() == 0);
tableLocation = (int[])tableDirectory.get("loca");
if (tableLocation == null)
throw new DocumentException(MessageLocalization.getComposedMessage("table.1.does.not.exist.in.2", "loca", fileName));
rf.seek(tableLocation[TABLE_OFFSET]);
if (locaShortTable) {
int entries = tableLocation[TABLE_LENGTH] / 2;
locaTable = new int[entries];
for (int k = 0; k < entries; ++k)