private void doZap(Source source, Result result, Object... params) { XQResultSequence seq = null; try { XQPreparedExpression expression = resource(params); expression.bindDocument(XQConstants.CONTEXT_ITEM, source, null); bindExpressionContext(expression, staticParams); bindExpressionContext(expression, resourceParameters(params)); seq = expression.executeQuery(); seq.writeSequenceToResult(result); } catch (Exception e) { throw new RuntimeException("XQuery processing failed", e); } finally { if (seq != null && !seq.isClosed()) { try { seq.close(); } catch (XQException e) { LOG.trace("XQLTransmogrifier didn't return a value.", e); } } } }