diff options
author | Colin Goodheart-Smithe <colings86@users.noreply.github.com> | 2017-07-04 10:51:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-04 10:51:38 +0100 |
commit | 43efcffcc217f5e49ed15593bc3156c2b4db1c73 (patch) | |
tree | 56cbb7b9c5a23e0754cfbb9a0ac60fffbff2dd20 /core/src/test | |
parent | 1c63c823b0e4c07d4ba0e4767840f68162b7b4b8 (diff) |
Adds check for negative search request size (#25397)
* Adds check for negative search request size
This change adds a check to `SearchSourceBuilder` to throw and exception if the size set on it is set to a negative value.
Closes #22530
* fix error in reindex
* update re-index tests
* Addresses review comment
* Fixed tests
* Added random negative size test
* Fixes test
Diffstat (limited to 'core/src/test')
-rw-r--r-- | core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java | 4 | ||||
-rw-r--r-- | core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java b/core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java index debeab52d9..8a255d376a 100644 --- a/core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java +++ b/core/src/test/java/org/elasticsearch/index/reindex/AbstractBulkByScrollRequestTestCase.java @@ -42,7 +42,9 @@ public abstract class AbstractBulkByScrollRequestTestCase<R extends AbstractBulk original.setSlices(between(2, 1000)); original.setRequestsPerSecond( randomBoolean() ? Float.POSITIVE_INFINITY : randomValueOtherThanMany(r -> r < 0, ESTestCase::randomFloat)); - original.setSize(randomBoolean() ? AbstractBulkByScrollRequest.SIZE_ALL_MATCHES : between(0, Integer.MAX_VALUE)); + if (randomBoolean()) { + original.setSize(between(0, Integer.MAX_VALUE)); + } TaskId slicingTask = new TaskId(randomAlphaOfLength(5), randomLong()); SearchRequest sliceRequest = new SearchRequest(); diff --git a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java index d6091c3cdd..7f468a8b50 100644 --- a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java @@ -359,6 +359,15 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { assertEquals("[from] parameter cannot be negative", expected.getMessage()); } + public void testNegativeSizeErrors() { + int randomSize = randomIntBetween(-100000, -2); + IllegalArgumentException expected = expectThrows(IllegalArgumentException.class, + () -> new SearchSourceBuilder().size(randomSize)); + assertEquals("[size] parameter cannot be negative, found [" + randomSize + "]", expected.getMessage()); + expected = expectThrows(IllegalArgumentException.class, () -> new SearchSourceBuilder().size(-1)); + assertEquals("[size] parameter cannot be negative, found [-1]", expected.getMessage()); + } + private void assertIndicesBoostParseErrorMessage(String restContent, String expectedErrorMessage) throws IOException { try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { ParsingException e = expectThrows(ParsingException.class, () -> SearchSourceBuilder.fromXContent(parser)); |