@Override public void run() { PartialList<Map<String, Serializable>> workflows = session.queryProjection(WORKFLOWS_QUERY, limit, 0); numberOfCleanedUpWorkflows = workflows.size(); for (Map<String, Serializable> workflow : workflows) { String routeDocId = workflow.get(ECM_UUID).toString(); final String associatedTaskQuery = String.format(TASKS_QUERY, routeDocId); session.queryProjection(associatedTaskQuery, 0, 0) .stream() .map(task -> new IdRef(task.get(ECM_UUID).toString())) .forEach(session::removeDocument); session.removeDocument(new IdRef(routeDocId)); } }