} catch (Throwable e) { LOG.info("Exception processing druid call in success", e); response.getFailureCallback(druidQuery).dispatch(e);
@Override public Future<JsonNode> executeQuery( DruidQuery<?> druidQuery, SuccessCallback successCallback, FailureCallback failureCallback ) { RequestLog logCtx = RequestLog.dump(); //todo eventually stop/start RequestLog phases return CompletableFuture.supplyAsync(() -> { try { JsonNode jsonNode = executeAndProcessQuery((DruidAggregationQuery) druidQuery); if (successCallback != null) { successCallback.invoke(jsonNode); } return jsonNode; } catch (Throwable t) { LOG.warn("Failed while querying ", t); if (failureCallback != null) { failureCallback.dispatch(t); } } finally { RequestLog.restore(logCtx); } return null; } ); }