private void finalizeQuery(Query query, QueryCompletedEvent event) { MasterPlan masterPlan = query.getPlan(); ExecutionBlock terminal = query.getPlan().getTerminalBlock(); DataChannel finalChannel = masterPlan.getChannel(event.getExecutionBlockId(), terminal.getId()); Path finalOutputDir = commitOutputData(query); QueryHookExecutor hookExecutor = new QueryHookExecutor(query.context.getQueryMasterContext()); try { hookExecutor.execute( query.context.getQueryContext(), query, event.getExecutionBlockId(), finalOutputDir); } catch (Exception e) { query.eventHandler.handle( new QueryDiagnosticsUpdateEvent(query.id, ExceptionUtils.getStackTrace(e))); } }