diff options
-rw-r--r-- | server/src/main/java/com/vaadin/data/provider/DataCommunicator.java | 18 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/data/provider/DataCommunicatorTest.java | 8 |
2 files changed, 22 insertions, 4 deletions
diff --git a/server/src/main/java/com/vaadin/data/provider/DataCommunicator.java b/server/src/main/java/com/vaadin/data/provider/DataCommunicator.java index 8d974c85d3..097cef622d 100644 --- a/server/src/main/java/com/vaadin/data/provider/DataCommunicator.java +++ b/server/src/main/java/com/vaadin/data/provider/DataCommunicator.java @@ -60,7 +60,7 @@ import elemental.json.JsonObject; public class DataCommunicator<T> extends AbstractExtension { private Registration dataProviderUpdateRegistration; - private static final int MAXIMUM_ALLOWED_ROWS = 500; + private int maximumAllowedRows = 500; /** * Simple implementation of collection data provider communication. All data @@ -316,14 +316,24 @@ public class DataCommunicator<T> extends AbstractExtension { } /** - * Set the maximum allowed rows to be fetched in one query. + * Get the maximum allowed rows to be fetched in one query. * * @return Maximum allowed rows for one query. * @since 8.14.1 */ protected int getMaximumAllowedRows() { - return MAXIMUM_ALLOWED_ROWS; - } + return maximumAllowedRows; + } + + /** + * Set the maximum allowed rows to be fetched in one query. + * + * @param maximumAllowedRows Maximum allowed rows for one query. + * @since + */ + public void setMaximumAllowedRows(int maximumAllowedRows) { + this.maximumAllowedRows = maximumAllowedRows; + } /** * Triggered when rows have been dropped from the client side cache. diff --git a/server/src/test/java/com/vaadin/data/provider/DataCommunicatorTest.java b/server/src/test/java/com/vaadin/data/provider/DataCommunicatorTest.java index ed681f298d..fda867eeef 100644 --- a/server/src/test/java/com/vaadin/data/provider/DataCommunicatorTest.java +++ b/server/src/test/java/com/vaadin/data/provider/DataCommunicatorTest.java @@ -322,4 +322,12 @@ public class DataCommunicatorTest { communicator.onRequestRows(0, communicator.getMaximumAllowedRows() + 10, 0, 0); } + + @Test + public void requestTooMuchRowsOverride() { + TestDataCommunicator communicator = new TestDataCommunicator(); + int maxRows = communicator.getMaximumAllowedRows(); + communicator.setMaximumAllowedRows(maxRows + 100); + communicator.onRequestRows(0, maxRows + 10, 0, 0); + } } |