Skip to content

Commit 94403c4

Browse files
authored
Remove throws IOException from PipelineAggregationBuilder#create (#40222)
IOException are never thrown in any of the existing pipeline aggregation builders. Removing the throws IOException from the create method allows to remove it also from a couple of other methods which ends up simplifying AggregationPhase (one less catch).
1 parent 790fdb1 commit 94403c4

21 files changed

+32
-37
lines changed

server/src/main/java/org/elasticsearch/search/aggregations/AggregationPhase.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -133,22 +133,18 @@ public void execute(SearchContext context) {
133133
}
134134
}
135135
context.queryResult().aggregations(new InternalAggregations(aggregations));
136-
try {
137-
List<PipelineAggregator> pipelineAggregators = context.aggregations().factories().createPipelineAggregators();
138-
List<SiblingPipelineAggregator> siblingPipelineAggregators = new ArrayList<>(pipelineAggregators.size());
139-
for (PipelineAggregator pipelineAggregator : pipelineAggregators) {
140-
if (pipelineAggregator instanceof SiblingPipelineAggregator) {
141-
siblingPipelineAggregators.add((SiblingPipelineAggregator) pipelineAggregator);
142-
} else {
143-
throw new AggregationExecutionException("Invalid pipeline aggregation named [" + pipelineAggregator.name()
144-
+ "] of type [" + pipelineAggregator.getWriteableName() + "]. Only sibling pipeline aggregations are "
145-
+ "allowed at the top level");
146-
}
136+
List<PipelineAggregator> pipelineAggregators = context.aggregations().factories().createPipelineAggregators();
137+
List<SiblingPipelineAggregator> siblingPipelineAggregators = new ArrayList<>(pipelineAggregators.size());
138+
for (PipelineAggregator pipelineAggregator : pipelineAggregators) {
139+
if (pipelineAggregator instanceof SiblingPipelineAggregator) {
140+
siblingPipelineAggregators.add((SiblingPipelineAggregator) pipelineAggregator);
141+
} else {
142+
throw new AggregationExecutionException("Invalid pipeline aggregation named [" + pipelineAggregator.name()
143+
+ "] of type [" + pipelineAggregator.getWriteableName() + "]. Only sibling pipeline aggregations are "
144+
+ "allowed at the top level");
147145
}
148-
context.queryResult().pipelineAggregators(siblingPipelineAggregators);
149-
} catch (IOException e) {
150-
throw new AggregationExecutionException("Failed to build top level pipeline aggregators", e);
151146
}
147+
context.queryResult().pipelineAggregators(siblingPipelineAggregators);
152148

153149
// disable aggregations so that they don't run on next pages in case of scrolling
154150
context.aggregations(null);

server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactories.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ private AggregatorFactories(AggregatorFactory<?>[] factories, List<PipelineAggre
175175
this.pipelineAggregatorFactories = pipelineAggregators;
176176
}
177177

178-
public List<PipelineAggregator> createPipelineAggregators() throws IOException {
178+
public List<PipelineAggregator> createPipelineAggregators() {
179179
List<PipelineAggregator> pipelineAggregators = new ArrayList<>(this.pipelineAggregatorFactories.size());
180180
for (PipelineAggregationBuilder factory : this.pipelineAggregatorFactories) {
181181
pipelineAggregators.add(factory.create());

server/src/main/java/org/elasticsearch/search/aggregations/PipelineAggregationBuilder.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.elasticsearch.search.aggregations.AggregatorFactories.Builder;
2525
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
2626

27-
import java.io.IOException;
2827
import java.util.Collection;
2928
import java.util.Map;
3029

@@ -76,7 +75,7 @@ protected abstract void validate(AggregatorFactory<?> parent, Collection<Aggrega
7675
*
7776
* @return The created aggregator
7877
*/
79-
protected abstract PipelineAggregator create() throws IOException;
78+
protected abstract PipelineAggregator create();
8079

8180
/** Associate metadata with this {@link PipelineAggregationBuilder}. */
8281
@Override

server/src/main/java/org/elasticsearch/search/aggregations/pipeline/AbstractPipelineAggregationBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,15 @@ public final void validate(AggregatorFactory<?> parent, Collection<AggregationBu
8989
doValidate(parent, factories, pipelineAggregatorFactories);
9090
}
9191

92-
protected abstract PipelineAggregator createInternal(Map<String, Object> metaData) throws IOException;
92+
protected abstract PipelineAggregator createInternal(Map<String, Object> metaData);
9393

9494
/**
9595
* Creates the pipeline aggregator
9696
*
9797
* @return The created aggregator
9898
*/
9999
@Override
100-
public final PipelineAggregator create() throws IOException {
100+
public final PipelineAggregator create() {
101101
PipelineAggregator aggregator = createInternal(this.metaData);
102102
return aggregator;
103103
}

server/src/main/java/org/elasticsearch/search/aggregations/pipeline/AvgBucketPipelineAggregationBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ protected void innerWriteTo(StreamOutput out) throws IOException {
4646
}
4747

4848
@Override
49-
protected PipelineAggregator createInternal(Map<String, Object> metaData) throws IOException {
49+
protected PipelineAggregator createInternal(Map<String, Object> metaData) {
5050
return new AvgBucketPipelineAggregator(name, bucketsPaths, gapPolicy(), formatter(), metaData);
5151
}
5252

server/src/main/java/org/elasticsearch/search/aggregations/pipeline/BucketMetricsPipelineAggregationBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public GapPolicy gapPolicy() {
104104
}
105105

106106
@Override
107-
protected abstract PipelineAggregator createInternal(Map<String, Object> metaData) throws IOException;
107+
protected abstract PipelineAggregator createInternal(Map<String, Object> metaData);
108108

109109
@Override
110110
public void doValidate(AggregatorFactory<?> parent, Collection<AggregationBuilder> aggBuilders,

server/src/main/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptPipelineAggregationBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public GapPolicy gapPolicy() {
139139
}
140140

141141
@Override
142-
protected PipelineAggregator createInternal(Map<String, Object> metaData) throws IOException {
142+
protected PipelineAggregator createInternal(Map<String, Object> metaData) {
143143
return new BucketScriptPipelineAggregator(name, bucketsPathsMap, script, formatter(), gapPolicy, metaData);
144144
}
145145

server/src/main/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorPipelineAggregationBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public GapPolicy gapPolicy() {
108108
}
109109

110110
@Override
111-
protected PipelineAggregator createInternal(Map<String, Object> metaData) throws IOException {
111+
protected PipelineAggregator createInternal(Map<String, Object> metaData) {
112112
return new BucketSelectorPipelineAggregator(name, bucketsPathsMap, script, gapPolicy, metaData);
113113
}
114114

server/src/main/java/org/elasticsearch/search/aggregations/pipeline/BucketSortPipelineAggregationBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public BucketSortPipelineAggregationBuilder gapPolicy(GapPolicy gapPolicy) {
139139
}
140140

141141
@Override
142-
protected PipelineAggregator createInternal(Map<String, Object> metaData) throws IOException {
142+
protected PipelineAggregator createInternal(Map<String, Object> metaData) {
143143
return new BucketSortPipelineAggregator(name, sorts, from, size, gapPolicy, metaData);
144144
}
145145

server/src/main/java/org/elasticsearch/search/aggregations/pipeline/CumulativeSumPipelineAggregationBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected DocValueFormat formatter() {
8888
}
8989

9090
@Override
91-
protected PipelineAggregator createInternal(Map<String, Object> metaData) throws IOException {
91+
protected PipelineAggregator createInternal(Map<String, Object> metaData) {
9292
return new CumulativeSumPipelineAggregator(name, bucketsPaths, formatter(), metaData);
9393
}
9494

0 commit comments

Comments
 (0)