transportService.registerHandler(TransportActions.SEARCH_SCROLL, new TransportHandler());
}
@Override protected void doExecute(SearchScrollRequest request, ActionListener<SearchResponse> listener) {
try {
ParsedScrollId scrollId = parseScrollId(request.scrollId());
if (scrollId.type().equals(QUERY_THEN_FETCH_TYPE)) {
queryThenFetchAction.execute(request, scrollId, listener);
} else if (scrollId.type().equals(QUERY_AND_FETCH_TYPE)) {
queryAndFetchAction.execute(request, scrollId, listener);
} else if (scrollId.type().equals(SCAN)) {
scanAction.execute(request, scrollId, listener);
} else {
throw new ElasticSearchIllegalArgumentException("Scroll id type [" + scrollId.type() + "] unrecognized");
}
} catch (Exception e) {
listener.onFailure(e);
}
}