diff --git a/server/src/main/java/org/elasticsearch/action/search/MultiSearchAction.java b/server/src/main/java/org/elasticsearch/action/search/MultiSearchAction.java index dd34dd94e69f7..d9b50cd7c4253 100644 --- a/server/src/main/java/org/elasticsearch/action/search/MultiSearchAction.java +++ b/server/src/main/java/org/elasticsearch/action/search/MultiSearchAction.java @@ -20,7 +20,6 @@ package org.elasticsearch.action.search; import org.elasticsearch.action.ActionType; -import org.elasticsearch.common.io.stream.Writeable; public class MultiSearchAction extends ActionType { @@ -28,11 +27,6 @@ public class MultiSearchAction extends ActionType { public static final String NAME = "indices:data/read/msearch"; private MultiSearchAction() { - super(NAME); - } - - @Override - public Writeable.Reader getResponseReader() { - return MultiSearchResponse::new; + super(NAME, MultiSearchResponse::new); } } diff --git a/server/src/main/java/org/elasticsearch/action/search/MultiSearchRequest.java b/server/src/main/java/org/elasticsearch/action/search/MultiSearchRequest.java index 071f5108bdded..1478b75d632d5 100644 --- a/server/src/main/java/org/elasticsearch/action/search/MultiSearchRequest.java +++ b/server/src/main/java/org/elasticsearch/action/search/MultiSearchRequest.java @@ -57,10 +57,12 @@ public class MultiSearchRequest extends ActionRequest implements CompositeIndice public static final int MAX_CONCURRENT_SEARCH_REQUESTS_DEFAULT = 0; private int maxConcurrentSearchRequests = 0; - private List requests = new ArrayList<>(); + private final List requests = new ArrayList<>(); private IndicesOptions indicesOptions = IndicesOptions.strictExpandOpenAndForbidClosedIgnoreThrottled(); + public MultiSearchRequest() {} + /** * Add a search request to execute. Note, the order is important, the search response will be returned in the * same order as the search requests. @@ -130,9 +132,9 @@ public MultiSearchRequest indicesOptions(IndicesOptions indicesOptions) { return this; } - @Override - public void readFrom(StreamInput in) throws IOException { - super.readFrom(in); + + public MultiSearchRequest(StreamInput in) throws IOException { + super(in); maxConcurrentSearchRequests = in.readVInt(); int size = in.readVInt(); for (int i = 0; i < size; i++) { @@ -141,6 +143,11 @@ public void readFrom(StreamInput in) throws IOException { } } + @Override + public void readFrom(StreamInput in) throws IOException { + throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable"); + } + @Override public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); diff --git a/server/src/main/java/org/elasticsearch/action/search/TransportMultiSearchAction.java b/server/src/main/java/org/elasticsearch/action/search/TransportMultiSearchAction.java index a2fa140c149e0..f03e1fd4dd1c9 100644 --- a/server/src/main/java/org/elasticsearch/action/search/TransportMultiSearchAction.java +++ b/server/src/main/java/org/elasticsearch/action/search/TransportMultiSearchAction.java @@ -27,6 +27,7 @@ import org.elasticsearch.cluster.block.ClusterBlockLevel; import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.inject.Inject; +import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.AtomicArray; import org.elasticsearch.common.util.concurrent.EsExecutors; @@ -51,7 +52,7 @@ public class TransportMultiSearchAction extends HandledTransportAction) MultiSearchRequest::new); this.threadPool = threadPool; this.clusterService = clusterService; this.availableProcessors = EsExecutors.numberOfProcessors(settings); @@ -62,7 +63,7 @@ public TransportMultiSearchAction(Settings settings, ThreadPool threadPool, Tran TransportMultiSearchAction(ThreadPool threadPool, ActionFilters actionFilters, TransportService transportService, ClusterService clusterService, int availableProcessors, LongSupplier relativeTimeProvider, NodeClient client) { - super(MultiSearchAction.NAME, transportService, actionFilters, MultiSearchRequest::new); + super(MultiSearchAction.NAME, transportService, actionFilters, (Writeable.Reader) MultiSearchRequest::new); this.threadPool = threadPool; this.clusterService = clusterService; this.availableProcessors = availableProcessors;