StaticContext context,
	public Sequence eval(		StaticContext context,		DocumentSet docs,		Sequence contextSequence,		Item contextItem)		throws XPathException {		NodeSet result = new ExtArrayNodeSet();		Expression path = getArgument(0);		result.addAll(contextSequence);		NodeProxy current;		if (inPredicate)			for (SequenceIterator i = result.iterate(); i.hasNext();) {				current = (NodeProxy) i.nextItem();				current.addContextNode(current);			}		// evaluate argument expression		Sequence argSeq =			path.eval(context, docs, contextSequence, contextItem);		NodeProxy parent;		long pid;		ContextItem contextNode;		NodeProxy next;		Item item;		// iterate through nodes and remove hits from result		for (SequenceIterator i = argSeq.iterate(); i.hasNext();) {			item = (Item) i.nextItem();			current = (NodeProxy) item;			contextNode = current.getContext();			if (contextNode == null) {				LOG.warn("context node is missing!");				break;			}			while (contextNode != null) {				next = contextNode.getNode();				//if ((parent = result.get(next)) != null)					result.remove(next);				contextNode = contextNode.getNextItem();			}		}		LOG.debug("found " + result.getLength());		return result;	}