8686import org .elasticsearch .threadpool .ThreadPool ;
8787import org .elasticsearch .threadpool .ThreadPool .Cancellable ;
8888import org .elasticsearch .threadpool .ThreadPool .Names ;
89+ import org .elasticsearch .transport .TransportRequest ;
8990
9091import java .io .IOException ;
9192import java .util .Collections ;
@@ -310,7 +311,7 @@ private QueryFetchSearchResult executeFetchPhase(SearchContext context, SearchOp
310311 }
311312
312313 public ScrollQuerySearchResult executeQueryPhase (InternalScrollSearchRequest request , SearchTask task ) {
313- final SearchContext context = findContext (request .id ());
314+ final SearchContext context = findContext (request .id (), request );
314315 SearchOperationListener operationListener = context .indexShard ().getSearchOperationListener ();
315316 context .incRef ();
316317 try {
@@ -334,7 +335,7 @@ public ScrollQuerySearchResult executeQueryPhase(InternalScrollSearchRequest req
334335 }
335336
336337 public QuerySearchResult executeQueryPhase (QuerySearchRequest request , SearchTask task ) {
337- final SearchContext context = findContext (request .id ());
338+ final SearchContext context = findContext (request .id (), request );
338339 context .setTask (task );
339340 IndexShard indexShard = context .indexShard ();
340341 SearchOperationListener operationListener = indexShard .getSearchOperationListener ();
@@ -375,7 +376,7 @@ private boolean fetchPhaseShouldFreeContext(SearchContext context) {
375376 }
376377
377378 public ScrollQueryFetchSearchResult executeFetchPhase (InternalScrollSearchRequest request , SearchTask task ) {
378- final SearchContext context = findContext (request .id ());
379+ final SearchContext context = findContext (request .id (), request );
379380 context .incRef ();
380381 try {
381382 context .setTask (task );
@@ -406,7 +407,7 @@ public ScrollQueryFetchSearchResult executeFetchPhase(InternalScrollSearchReques
406407 }
407408
408409 public FetchSearchResult executeFetchPhase (ShardFetchRequest request , SearchTask task ) {
409- final SearchContext context = findContext (request .id ());
410+ final SearchContext context = findContext (request .id (), request );
410411 final SearchOperationListener operationListener = context .indexShard ().getSearchOperationListener ();
411412 context .incRef ();
412413 try {
@@ -436,15 +437,15 @@ public FetchSearchResult executeFetchPhase(ShardFetchRequest request, SearchTask
436437 }
437438 }
438439
439- private SearchContext findContext (long id ) throws SearchContextMissingException {
440+ private SearchContext findContext (long id , TransportRequest request ) throws SearchContextMissingException {
440441 SearchContext context = activeContexts .get (id );
441442 if (context == null ) {
442443 throw new SearchContextMissingException (id );
443444 }
444445
445446 SearchOperationListener operationListener = context .indexShard ().getSearchOperationListener ();
446447 try {
447- operationListener .validateSearchContext (context );
448+ operationListener .validateSearchContext (context , request );
448449 return context ;
449450 } catch (Exception e ) {
450451 processFailure (context , e );
0 commit comments