}  boolean lockOnLoad = context.lockDocumentsOnLoad();
	public Sequence eval(		Sequence contextSequence,		Item contextItem)		throws XPathException {	    List args = getParameterValues(contextSequence, contextItem);		boolean cacheIsValid = false;		if(cachedArgs != null)		    cacheIsValid = compareArguments(cachedArgs, args);		if(cacheIsValid)		    return cached;				DocumentSet docs = new DocumentSet();		for (int i = 0; i < args.size(); i++) {			String next = (String)args.get(i);		    Collection coll = context.getBroker().getCollection(next);		    if(coll != null)		    	coll.allDocs(context.getBroker(), docs, includeSubCollections, true);		}		NodeSet result = new ExtArrayNodeSet(docs.getLength(), 1);		Lock dlock;		DocumentImpl doc;		for (Iterator i = docs.iterator(); i.hasNext();) {		    doc = (DocumentImpl)i.next();		    dlock = doc.getUpdateLock();		    try {		        dlock.acquire(Lock.READ_LOCK);		        result.add(new NodeProxy(doc, -1, Node.DOCUMENT_NODE));		    } catch (LockException e) {                LOG.info("Could not acquire read lock on document " + doc.getFileName());            } finally {		        dlock.release(Lock.READ_LOCK);		    }		}		cached = result;		cachedArgs = args;		return result;	}