private static boolean invoke( PageContext pc, Query qry, UDF udf, ExecutorService es, List<Future<Data<Object>>> futures) throws CasterException, PageException { final int pid = pc.getId(); ForEachQueryIterator it = new ForEachQueryIterator(qry, pid); boolean async = es != null; double r; Object res, row; try { while (it.hasNext()) { row = it.next(); r = Caster.toDoubleValue(qry.getCurrentrow(pid)); res = _inv(pc, udf, new Object[] {row, r, qry}, r, row, es, futures); if (!async && !Caster.toBooleanValue(res)) { return false; } } } finally { it.reset(); } return true; }