if(doc != null) doc.getUpdateLock().release(Lock.READ_LOCK);
	Hashtable describeResource(User user, String resourceName)		throws EXistException, PermissionDeniedException {	    DBBroker broker = brokerPool.get(user);		try {		    DocumentImpl doc = (DocumentImpl) broker.getDocument(resourceName);			if (doc == null) {				LOG.debug("document " + resourceName + " not found!");				throw new EXistException("document not found");			}			if (!doc.getCollection().getPermissions().validate(user, Permission.READ)) {				throw new PermissionDeniedException("Not allowed to read collection");			}			Hashtable desc = new Hashtable();			Vector collections = new Vector();			Permission perms = doc.getPermissions();			Hashtable hash = new Hashtable(5);			hash.put("name", resourceName);			hash.put("owner", perms.getOwner());			hash.put("group", perms.getOwnerGroup());			hash					.put("permissions", new Integer(perms							.getPermissions()));			hash.put("type",					doc.getResourceType() == DocumentImpl.BINARY_FILE							? "BinaryResource"							: "XMLResource");			return hash;		} finally {			brokerPool.release(broker);		}	}