private boolean cancelQuery(@NonNull QueryHandle queryHandle) throws LensException { QueryContext ctx = allQueries.get(queryHandle); if (ctx == null) { log.info("Could not cancel query {} as it has been purged already", queryHandle); return false; } synchronized (ctx) { updateStatus(queryHandle); if (ctx.finished()) { log.info("Could not cancel query {} as it has finished execution already", queryHandle); return false; } if (ctx.isLaunching()) { boolean launchCancelled = ctx.getQueryLauncher().cancel(true); log.info("query launch cancellation success : {}", launchCancelled); } if (ctx.launched() || ctx.running()) { if (!ctx.getSelectedDriver().cancelQuery(queryHandle)) { log.info("Could not cancel query {}", queryHandle); return false; } } log.info("Query {} cancelled successfully", queryHandle); setCancelledStatus(ctx, "Query is cancelled"); return true; } }