Skip to content

Commit 161984b

Browse files
authored
Avoid classloading deadlock in ValuesSource. (#22994)
Closes #22952
1 parent 80759eb commit 161984b

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

core/src/main/java/org/elasticsearch/search/aggregations/support/AggregationContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public <VS extends ValuesSource> VS valuesSource(ValuesSourceConfig<VS> config,
7777
} else if (ValuesSource.class.isAssignableFrom(config.valueSourceType)
7878
|| ValuesSource.Bytes.class.isAssignableFrom(config.valueSourceType)
7979
|| ValuesSource.Bytes.WithOrdinals.class.isAssignableFrom(config.valueSourceType)) {
80-
vs = (VS) ValuesSource.Bytes.EMPTY;
80+
vs = (VS) ValuesSource.Bytes.WithOrdinals.EMPTY;
8181
} else {
8282
throw new SearchParseException(searchContext, "Can't deal with unmapped ValuesSource type " + config.valueSourceType, null);
8383
}

core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSource.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -63,25 +63,6 @@ public boolean needsScores() {
6363

6464
public static abstract class Bytes extends ValuesSource {
6565

66-
public static final WithOrdinals EMPTY = new WithOrdinals() {
67-
68-
@Override
69-
public RandomAccessOrds ordinalsValues(LeafReaderContext context) {
70-
return DocValues.emptySortedSet();
71-
}
72-
73-
@Override
74-
public RandomAccessOrds globalOrdinalsValues(LeafReaderContext context) {
75-
return DocValues.emptySortedSet();
76-
}
77-
78-
@Override
79-
public SortedBinaryDocValues bytesValues(LeafReaderContext context) throws IOException {
80-
return org.elasticsearch.index.fielddata.FieldData.emptySortedBinary(context.reader().maxDoc());
81-
}
82-
83-
};
84-
8566
@Override
8667
public Bits docsWithValue(LeafReaderContext context) throws IOException {
8768
final SortedBinaryDocValues bytes = bytesValues(context);
@@ -94,6 +75,25 @@ public Bits docsWithValue(LeafReaderContext context) throws IOException {
9475

9576
public static abstract class WithOrdinals extends Bytes {
9677

78+
public static final WithOrdinals EMPTY = new WithOrdinals() {
79+
80+
@Override
81+
public RandomAccessOrds ordinalsValues(LeafReaderContext context) {
82+
return DocValues.emptySortedSet();
83+
}
84+
85+
@Override
86+
public RandomAccessOrds globalOrdinalsValues(LeafReaderContext context) {
87+
return DocValues.emptySortedSet();
88+
}
89+
90+
@Override
91+
public SortedBinaryDocValues bytesValues(LeafReaderContext context) throws IOException {
92+
return org.elasticsearch.index.fielddata.FieldData.emptySortedBinary(context.reader().maxDoc());
93+
}
94+
95+
};
96+
9797
@Override
9898
public Bits docsWithValue(LeafReaderContext context) {
9999
final RandomAccessOrds ordinals = ordinalsValues(context);

0 commit comments

Comments
 (0)