2828import org .elasticsearch .search .aggregations .bucket .SingleBucketAggregator ;
2929import org .elasticsearch .search .aggregations .metrics .InternalNumericMetricsAggregation ;
3030import org .elasticsearch .search .aggregations .metrics .NumericMetricsAggregator ;
31+ import org .elasticsearch .search .profile .aggregation .ProfilingAggregator ;
3132
3233import java .util .ArrayList ;
3334import java .util .List ;
@@ -256,7 +257,7 @@ public Aggregator resolveAggregator(Aggregator root) {
256257 Aggregator aggregator = root ;
257258 for (int i = 0 ; i < pathElements .size (); i ++) {
258259 AggregationPath .PathElement token = pathElements .get (i );
259- aggregator = aggregator .subAggregator (token .name );
260+ aggregator = ProfilingAggregator . unwrap ( aggregator .subAggregator (token .name ) );
260261 assert (aggregator instanceof SingleBucketAggregator && i <= pathElements .size () - 1 )
261262 || (aggregator instanceof NumericMetricsAggregator && i == pathElements .size () - 1 ) :
262263 "this should be picked up before aggregation execution - on validate" ;
@@ -272,7 +273,7 @@ public Aggregator resolveAggregator(Aggregator root) {
272273 */
273274 public Aggregator resolveTopmostAggregator (Aggregator root ) {
274275 AggregationPath .PathElement token = pathElements .get (0 );
275- Aggregator aggregator = root .subAggregator (token .name );
276+ Aggregator aggregator = ProfilingAggregator . unwrap ( root .subAggregator (token .name ) );
276277 assert (aggregator instanceof SingleBucketAggregator )
277278 || (aggregator instanceof NumericMetricsAggregator ) : "this should be picked up before aggregation execution - on validate" ;
278279 return aggregator ;
@@ -287,7 +288,7 @@ public Aggregator resolveTopmostAggregator(Aggregator root) {
287288 public void validate (Aggregator root ) throws AggregationExecutionException {
288289 Aggregator aggregator = root ;
289290 for (int i = 0 ; i < pathElements .size (); i ++) {
290- aggregator = aggregator .subAggregator (pathElements .get (i ).name );
291+ aggregator = ProfilingAggregator . unwrap ( aggregator .subAggregator (pathElements .get (i ).name ) );
291292 if (aggregator == null ) {
292293 throw new AggregationExecutionException ("Invalid aggregator order path [" + this + "]. Unknown aggregation ["
293294 + pathElements .get (i ).name + "]" );
0 commit comments