diff --git a/core/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java b/core/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java index 0bfbcfa3143..4b30da0b9f5 100644 --- a/core/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java +++ b/core/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java @@ -729,6 +729,16 @@ public abstract class StreamInput extends InputStream { throw new UnsupportedOperationException("can't read named writeable from StreamInput"); } + /** + * Reads an optional {@link QueryBuilder}. + */ + public > C readOptionalNamedWriteable(Class categoryClass) throws IOException { + if (readBoolean()) { + return readNamedWriteable(categoryClass); + } + return null; + } + /** * Reads a {@link AggregatorBuilder} from the current stream */ @@ -750,16 +760,6 @@ public abstract class StreamInput extends InputStream { return readNamedWriteable(QueryBuilder.class); } - /** - * Reads an optional {@link QueryBuilder}. - */ - public QueryBuilder readOptionalQuery() throws IOException { - if (readBoolean()) { - return readNamedWriteable(QueryBuilder.class); - } - return null; - } - /** * Reads a {@link ShapeBuilder} from the current stream */ diff --git a/core/src/main/java/org/elasticsearch/search/sort/FieldSortBuilder.java b/core/src/main/java/org/elasticsearch/search/sort/FieldSortBuilder.java index dfced1d8f57..72a248db393 100644 --- a/core/src/main/java/org/elasticsearch/search/sort/FieldSortBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/sort/FieldSortBuilder.java @@ -101,7 +101,7 @@ public class FieldSortBuilder extends SortBuilder { */ public FieldSortBuilder(StreamInput in) throws IOException { fieldName = in.readString(); - nestedFilter = in.readOptionalQuery(); + nestedFilter = in.readOptionalNamedWriteable(QueryBuilder.class); nestedPath = in.readOptionalString(); missing = in.readGenericValue(); order = in.readOptionalWriteable(SortOrder::readFromStream); diff --git a/core/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java b/core/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java index ef86c45afd8..dbefbb460ba 100644 --- a/core/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java @@ -159,7 +159,7 @@ public class GeoDistanceSortBuilder extends SortBuilder unit = DistanceUnit.readFromStream(in); order = SortOrder.readFromStream(in); sortMode = in.readOptionalWriteable(SortMode::readFromStream); - nestedFilter = in.readOptionalQuery(); + nestedFilter = in.readOptionalNamedWriteable(QueryBuilder.class); nestedPath = in.readOptionalString(); coerce = in.readBoolean(); ignoreMalformed =in.readBoolean(); diff --git a/core/src/main/java/org/elasticsearch/search/sort/ScriptSortBuilder.java b/core/src/main/java/org/elasticsearch/search/sort/ScriptSortBuilder.java index 3e0314bda1b..93b7de74b61 100644 --- a/core/src/main/java/org/elasticsearch/search/sort/ScriptSortBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/sort/ScriptSortBuilder.java @@ -118,7 +118,7 @@ public class ScriptSortBuilder extends SortBuilder { order = SortOrder.readFromStream(in); sortMode = in.readOptionalWriteable(SortMode::readFromStream); nestedPath = in.readOptionalString(); - nestedFilter = in.readOptionalQuery(); + nestedFilter = in.readOptionalNamedWriteable(QueryBuilder.class); } @Override