Repository: finos/waltz
Issue: Grid export: reports of timeout when exporting large numbers of rows

### Description

Needs further investigation as initial tests seem fine.



### Waltz Version

1.39


Changed files:
waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/SurveyInstanceExtractor.java
waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/CustomDataExtractor.java
waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/DirectQueryBasedDataExtractor.java
waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/AttestationExtractor.java

diff --git a/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/AttestationExtractor.java b/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/AttestationExtractor.java
index fd365e32e..d0af431ef 100644
--- a/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/AttestationExtractor.java
+++ b/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/AttestationExtractor.java
@@ -231,7 +231,7 @@ public class AttestationExtractor extends DirectQueryBasedDataExtractor {
     private byte[] mkExcelReport(String reportName,
                                  List<String> columnDefinitions,
                                  Set<ApplicationAttestationInstanceSummary> reportRows) throws IOException {
-        SXSSFWorkbook workbook = new SXSSFWorkbook();
+        SXSSFWorkbook workbook = new SXSSFWorkbook(2000);
         SXSSFSheet sheet = workbook.createSheet(sanitizeSheetName(reportName));
 
         int colCount = writeExcelHeader(columnDefinitions, sheet);
diff --git a/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/CustomDataExtractor.java b/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/CustomDataExtractor.java
index c45749812..8fb815c79 100644
--- a/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/CustomDataExtractor.java
+++ b/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/CustomDataExtractor.java
@@ -73,7 +73,7 @@ public abstract class CustomDataExtractor implements DataExtractor {
 
 
     private byte[] mkExcelReport(String reportName, List<List<Object>> reportRows, List<String> headers) throws IOException {
-        SXSSFWorkbook workbook = new SXSSFWorkbook();
+        SXSSFWorkbook workbook = new SXSSFWorkbook(2000);
         SXSSFSheet sheet = workbook.createSheet(sanitizeSheetName(reportName));
 
         int colCount = writeExcelHeader(sheet, headers);
diff --git a/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/DirectQueryBasedDataExtractor.java b/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/DirectQueryBasedDataExtractor.java
index 589ee5305..629e6daf6 100644
--- a/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/DirectQueryBasedDataExtractor.java
+++ b/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/DirectQueryBasedDataExtractor.java
@@ -74,7 +74,7 @@ public abstract class DirectQueryBasedDataExtractor implements DataExtractor {
                                                 String suggestedFilenameStem,
                                                 Response response,
                                                 Tuple2<String, Select<?>>... sheetDefinitions) {
-        SXSSFWorkbook workbook = new SXSSFWorkbook();
+        SXSSFWorkbook workbook = new SXSSFWorkbook(2000);
 
         for (Tuple2<String, Select<?>> sheetDef : sheetDefinitions) {
             time("preparing excel sheet: " + sheetDef.v1, () -> {
@@ -101,7 +101,7 @@ public abstract class DirectQueryBasedDataExtractor implements DataExtractor {
     private static Object writeAsExcel(String suggestedFilenameStem,
                                        Select<?> qry,
                                        Response response) throws IOException {
-        SXSSFWorkbook workbook = new SXSSFWorkbook();
+        SXSSFWorkbook workbook = new SXSSFWorkbook(2000);
         SXSSFSheet sheet = workbook.createSheet(ExtractorUtilities.sanitizeSheetName(suggestedFilenameStem));
 
         writeExcelHeader(qry, sheet);
diff --git a/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/SurveyInstanceExtractor.java b/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/SurveyInstanceExtractor.java
index 2d8d8cfef..222114d0d 100644
--- a/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/SurveyInstanceExtractor.java
+++ b/waltz-web/src/main/java/org/finos/waltz/web/endpoints/extracts/SurveyInstanceExtractor.java
@@ -272,7 +272,7 @@ public class SurveyInstanceExtractor implements DataExtractor {
 
 
     private byte[] mkExcelReport(String reportName, List<SurveyQuestion> questions, List<List<Object>> reportRows) throws IOException {
-        SXSSFWorkbook workbook = new SXSSFWorkbook(4000);
+        SXSSFWorkbook workbook = new SXSSFWorkbook(2000);
         SXSSFSheet sheet = workbook.createSheet(sanitizeSheetName(reportName));
 
         int colCount = writeExcelHeader(questions, sheet);