@Override public QueryState transition(Query query, QueryEvent queryEvent) { QueryCompletedEvent subQueryEvent = (QueryCompletedEvent) queryEvent; QueryState finalState; if (subQueryEvent.getState() == SubQueryState.SUCCEEDED) { finalizeQuery(query, subQueryEvent); finalState = QueryState.QUERY_SUCCEEDED; } else if (subQueryEvent.getState() == SubQueryState.FAILED) { finalState = QueryState.QUERY_FAILED; } else if (subQueryEvent.getState() == SubQueryState.KILLED) { finalState = QueryState.QUERY_KILLED; } else { finalState = QueryState.QUERY_ERROR; } query.eventHandler.handle(new QueryMasterQueryCompletedEvent(query.getId())); query.setFinishTime(); return finalState; }