short tcount = istream.readShort(); treeLevelStartPoints = new long[tcount]; for (int i = 0; i < tcount; i++) treeLevelStartPoints[i] = istream.readLong();  docType = new DocumentTypeImpl(); ((DocumentTypeImpl) docType).read(istream); permissions.read(istream);
} final SecurityManager secman = broker.getBrokerPool().getSecurityManager(); final int uid = istream.readInt(); final int gid = istream.readInt(); final int perm = (istream.readByte() & 0777); if (secman == null) { permissions.setOwner(SecurityManager.DBA_USER); permissions.setGroup(SecurityManager.DBA_GROUP); } else { permissions.setOwner(secman.getUser(uid)); permissions.setGroup(secman.getGroup(gid).getName()); } permissions.setPermissions(perm); try { calculateTreeLevelStartPoints(); } catch (EXistException e) { } complete = false;
	public void read(DataInput istream) throws IOException, EOFException {		fileName = istream.readUTF();		docId = istream.readInt();		children = istream.readInt();		maxDepth = istream.readInt();		short ocount = istream.readShort();		treeLevelOrder = new int[ocount];		for (int i = 0; i < ocount; i++)			treeLevelOrder[i] = istream.readInt();		short tcount = istream.readShort();		treeLevelStartPoints = new long[tcount];		for (int i = 0; i < tcount; i++)			treeLevelStartPoints[i] = istream.readLong();		docType = new DocumentTypeImpl();		((DocumentTypeImpl) docType).read(istream);		permissions.read(istream);	}