38
38
import org .elasticsearch .cluster .ClusterState ;
39
39
import org .elasticsearch .cluster .ClusterStateTaskExecutor ;
40
40
import org .elasticsearch .cluster .ClusterStateTaskExecutor .ClusterTasksResult ;
41
+ import org .elasticsearch .cluster .ClusterStateTaskExecutor .TaskResult ;
41
42
import org .elasticsearch .cluster .ClusterStateUpdateTask ;
42
43
import org .elasticsearch .cluster .EmptyClusterInfoService ;
43
44
import org .elasticsearch .cluster .action .shard .ShardStateAction ;
@@ -440,7 +441,7 @@ public ClusterState applyStartedShards(ClusterState clusterState, Map<ShardRouti
440
441
private <T > ClusterState runTasks (ClusterStateTaskExecutor <T > executor , ClusterState clusterState , List <T > entries ) {
441
442
try {
442
443
ClusterTasksResult <T > result = executor .execute (clusterState , entries );
443
- for (ClusterStateTaskExecutor . TaskResult taskResult : result .executionResults .values ()) {
444
+ for (TaskResult taskResult : result .executionResults .values ()) {
444
445
if (taskResult .isSuccess () == false ) {
445
446
throw taskResult .getFailure ();
446
447
}
@@ -465,16 +466,25 @@ private <Request extends MasterNodeRequest<Request>, Response extends ActionResp
465
466
});
466
467
}
467
468
469
+ @ SuppressWarnings ("unchecked" )
468
470
private ClusterState executeClusterStateUpdateTask (ClusterState state , Runnable runnable ) {
469
- ClusterState [] result = new ClusterState [1 ];
471
+ ClusterState [] resultingState = new ClusterState [1 ];
470
472
doAnswer (invocationOnMock -> {
471
473
ClusterStateUpdateTask task = (ClusterStateUpdateTask ) invocationOnMock .getArguments ()[1 ];
472
- result [0 ] = task .execute (state );
474
+ ClusterStateTaskExecutor <ClusterStateUpdateTask > executor = (ClusterStateTaskExecutor <ClusterStateUpdateTask >) invocationOnMock
475
+ .getArguments ()[2 ];
476
+ ClusterTasksResult <ClusterStateUpdateTask > result = executor .execute (state , List .of (task ));
477
+ for (TaskResult taskResult : result .executionResults .values ()) {
478
+ if (taskResult .isSuccess () == false ) {
479
+ throw taskResult .getFailure ();
480
+ }
481
+ }
482
+ resultingState [0 ] = result .resultingState ;
473
483
return null ;
474
484
}).when (clusterService ).submitStateUpdateTask (anyString (), any (ClusterStateUpdateTask .class ), any ());
475
485
runnable .run ();
476
- assertThat (result [0 ], notNullValue ());
477
- return result [0 ];
486
+ assertThat (resultingState [0 ], notNullValue ());
487
+ return resultingState [0 ];
478
488
}
479
489
480
490
private ActionListener <TransportResponse .Empty > createTestListener () {
0 commit comments