}
// execute the query
a = System.nanoTime();
XmlResults results = qe.execute(context);
b = System.nanoTime();
total += b - a;
if (log.isDebugEnabled()) {
log.debug("Query exec. time: " + (b - a) + "ns");
}
// process results
while (results.hasNext()) {
XmlValue value = results.next();
byte[] content = value.asDocument().getContent();
if (content.length > 0) {
documents.put(value.asDocument().getName(),
handleDocument(m_policyReader.readPolicy(content),policyFinder));
} else {
throw new PolicyIndexException("Zero-length result found");
}
}
results.delete();
} catch (XmlException xe) {
log.error("Error getting query results." + xe.getMessage());
throw new PolicyIndexException("Error getting query results." + xe.getMessage(), xe);
} catch (ParsingException pe) {
log.error("Error getting query results." + pe.getMessage());