]> source.dussan.org Git - poi.git/commitdiff
[bug-66152] add broken test
authorPJ Fanning <fanningpj@apache.org>
Fri, 1 Jul 2022 12:55:33 +0000 (12:55 +0000)
committerPJ Fanning <fanningpj@apache.org>
Fri, 1 Jul 2022 12:55:33 +0000 (12:55 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1902390 13f79535-47bb-0310-9956-ffa450edef68

poi/src/test/java/org/apache/poi/ss/formula/TestFormulaEval.java

index 3a507f57c150d24d9ba50cc9d544c3a854c536d9..8c390a0d3377f47b2ec6da2a7f68e260b66ede8f 100644 (file)
@@ -25,6 +25,7 @@ import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.CellType;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
@@ -72,4 +73,24 @@ class TestFormulaEval {
             assertEquals(CellType.ERROR, cell1.getCellType());
         }
     }
+
+    @Disabled("currently causes a StackOverflowError")
+    @Test
+    void testBug66152() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            HSSFSheet sheet = wb.createSheet();
+            HSSFRow r0 = sheet.createRow(0);
+            HSSFCell c0 = r0.createCell(0);
+            c0.setCellValue(1);
+            HSSFCell cell = null;
+            for (int i = 1; i < 1200; i++) {
+                HSSFRow row = sheet.createRow(i);
+                cell = row.createCell(0);
+                cell.setCellFormula("SUM(A" + i + " + 1)");
+            }
+            HSSFFormulaEvaluator formulaEvaluator = wb.getCreationHelper().createFormulaEvaluator();
+            //formulaEvaluator.evaluateAll(); //this workaround avoids the stackoverflow issue
+            assertEquals(CellType.NUMERIC, formulaEvaluator.evaluateFormulaCell(cell));
+        }
+    }
 }