include = contextSet.parentWithChild(doc, gid, false, true) != null;
		public boolean indexInfo(Value key, long pointer)				throws TerminatedException {			String term;			try {				term = new String(key.getData(), 2, key.getLength() - 2,						"UTF-8");			} catch (UnsupportedEncodingException uee) {				term = new String(key.getData(), 2, key.getLength() - 2);			}			Occurrences oc = (Occurrences) map.get(term);						VariableByteInput is = null;			try {				is = dbWords.getAsStream(pointer);			} catch (IOException ioe) {				LOG.warn(ioe.getMessage(), ioe);			}			if (is == null)				return true;			try {				int docId;				byte section;				int len, rawSize;				int freq = 1;				long gid;				DocumentImpl doc;				boolean include = true;				boolean docAdded;				NodeProxy p;				while (is.available() > 0) {					docId = is.readInt();					section = 						is.readByte();					len = is.readInt();					rawSize = is.readFixedInt();					if ((doc = docs.getDoc(docId)) == null) {						is.skipBytes(rawSize);						continue;					}					docAdded = false;					gid = 0;					for (int j = 0; j < len; j++) {						gid += is.readLong();						freq = is.readInt();                        is.skip(freq);						if (contextSet != null) {							p = contextSet.parentWithChild(doc, gid, false, true);							if (p != null) {								if (section == ATTRIBUTE_SECTION) {									include = p.nodeType == Node.ATTRIBUTE_NODE;								} else {									include = p != null;								}							}							include = contextSet.parentWithChild(doc, gid, false, true) != null;						}						if (include) {							if (oc == null) {								oc = new Occurrences(term);								map.put(term, oc);							}							if (!docAdded) {								oc.addDocument(doc);								docAdded = true;							}							oc.addOccurrences(freq);						}					}				}			} catch(EOFException e) {			} catch(IOException e) {				LOG.warn("Exception while scanning index: " + e.getMessage(), e);			}			return true;		}