diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/search/SearchRequest.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/search/SearchRequest.java index ebb083e3e5f..329004480cd 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/search/SearchRequest.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/search/SearchRequest.java @@ -119,10 +119,9 @@ public class SearchRequest implements ActionRequest { return validationException; } - /** - * Internal. - */ - public void beforeLocalFork() { + public void beforeStart() { + // we always copy over if needed, the reason is that a request might fail while being search remotely + // and then we need to keep the buffer around if (source != null && sourceUnsafe) { source = Arrays.copyOfRange(source, sourceOffset, sourceOffset + sourceLength); sourceOffset = 0; @@ -135,6 +134,12 @@ public class SearchRequest implements ActionRequest { } } + /** + * Internal. + */ + public void beforeLocalFork() { + } + /** * Should the listener be called on a separate thread if needed. */ diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/search/type/TransportSearchTypeAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/search/type/TransportSearchTypeAction.java index 27ed5667d3b..2dfb0af68d7 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/search/type/TransportSearchTypeAction.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/search/type/TransportSearchTypeAction.java @@ -130,6 +130,7 @@ public abstract class TransportSearchTypeAction extends BaseAction