]> source.dussan.org Git - poi.git/commitdiff
[bug-65675] add regression test
authorPJ Fanning <fanningpj@apache.org>
Tue, 9 Nov 2021 19:45:03 +0000 (19:45 +0000)
committerPJ Fanning <fanningpj@apache.org>
Tue, 9 Nov 2021 19:45:03 +0000 (19:45 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894884 13f79535-47bb-0310-9956-ffa450edef68

poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CalendarDemo.java
poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/WorkingWithPageSetup.java
poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFEvaluationSheet.java
poi/src/main/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
poi/src/main/java/org/apache/poi/ss/formula/ptg/RefPtgBase.java
poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestXEvaluationSheet.java

index 9f0da5e740b58b1b1b6e5a28daa53dd4298634cc..60ce9b91eeed26307f6b74b04eed64158c630797 100644 (file)
@@ -41,7 +41,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 /**
  * A  monthly calendar created using Apache POI. Each month is on a separate sheet.
  * This is a version of org.apache.poi.ss.examples.CalendarDemo that demonstrates
- * some XSSF features not avaiable when using common HSSF-XSSF interfaces.
+ * some XSSF features not available when using common HSSF-XSSF interfaces.
  *
  * <pre>
  * Usage:
index a43c5125a3d67623e5c2fb30948f3b3625189b03..f05f6ff8d1534e3599636af90ed3877c31a598b4 100644 (file)
@@ -25,7 +25,7 @@ import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 /**
- * Demonstrates various settings avaiable in the Page Setup dialog
+ * Demonstrates various settings available in the Page Setup dialog
  */
 public class WorkingWithPageSetup {
 
index 431f585b60901ed67c07a8b0d638c748e34e220c..4c9eba60f97e5cc52a10d47dfa8ec01ae74b472d 100644 (file)
 ==================================================================== */
 package org.apache.poi.xssf.usermodel;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
+import java.io.IOException;
 import java.util.AbstractMap;
 import java.util.Map;
 
 import org.apache.poi.ss.formula.EvaluationSheet;
 import org.apache.poi.ss.usermodel.BaseTestXEvaluationSheet;
+import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.*;
+
 class TestXSSFEvaluationSheet extends BaseTestXEvaluationSheet {
 
     @Test
-    void test() throws Exception {
+    void testSheetEval() throws Exception {
         XSSFWorkbook wb = new XSSFWorkbook();
         XSSFSheet sheet = wb.createSheet("test");
         XSSFRow row = sheet.createRow(0);
@@ -61,6 +61,26 @@ class TestXSSFEvaluationSheet extends BaseTestXEvaluationSheet {
         assertEquals(sheet, evalsheet.getXSSFSheet());
     }
 
+    @Test
+    void testBug65675() throws IOException  {
+        try (XSSFWorkbook workbook = new XSSFWorkbook()) {
+            XSSFFormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
+            evaluator.setIgnoreMissingWorkbooks(true);
+
+            XSSFSheet sheet = workbook.createSheet("sheet");
+            XSSFRow row = sheet.createRow(0);
+            XSSFCell cell = row.createCell(0, CellType.FORMULA);
+
+            try {
+                cell.setCellFormula("[some-workbook-that-does-not-yet-exist.xlsx]main!B:D");
+                //it might be better if this succeeded but just adding this regression test for now
+                fail("expected exception");
+            } catch (RuntimeException re) {
+                assertEquals("Book not linked for filename some-workbook-that-does-not-yet-exist.xlsx", re.getMessage());
+            }
+        }
+    }
+
     @Override
     protected Map.Entry<Sheet, EvaluationSheet> getInstance() {
         XSSFSheet sheet = new XSSFWorkbook().createSheet();
index f1beee7569263507b58be374207f012e82cfd416..79aa8dc37459d59e7b5db13465277d81384e245d 100644 (file)
@@ -926,7 +926,7 @@ public final class WorkbookEvaluator {
      * Whether to ignore missing references to external workbooks and
      * use cached formula results in the main workbook instead.
      * <p>
-     * In some cases exetrnal workbooks referenced by formulas in the main workbook are not avaiable.
+     * In some cases external workbooks referenced by formulas in the main workbook are not available.
      * With this method you can control how POI handles such missing references:
      * <ul>
      *     <li>by default ignoreMissingWorkbooks=false and POI throws {@link WorkbookNotFoundException}
index e73093a716d91e6b23ff2755b069e07d65945cbc..c7b55780f6cc8f433df325fe8654d784499aa952 100644 (file)
@@ -33,8 +33,8 @@ import org.apache.poi.util.LittleEndianOutput;
 public abstract class RefPtgBase extends OperandPtg {
 
     /**
-     * YK: subclasses of RefPtgBase are used by the FormulaParser and FormulaEvaluator accross HSSF and XSSF.
-     * The bit mask should accommodate the maximum number of avaiable columns, i.e. 0x3FFF.
+     * YK: subclasses of RefPtgBase are used by the FormulaParser and FormulaEvaluator across HSSF and XSSF.
+     * The bit mask should accommodate the maximum number of available columns, i.e. 0x3FFF.
      *
      * @see org.apache.poi.ss.SpreadsheetVersion
      */
index 08fbae584e82e3ec523a6f8ba3571c23bc0b9040..c1a02f3aaa81d60e69a80c438faa044bb6826e7a 100644 (file)
@@ -46,4 +46,5 @@ public abstract class BaseTestXEvaluationSheet {
         underlyingSheet.removeRow(underlyingSheet.getRow(2));
         assertEquals(1, instance.getLastRowNum());
     }
+
 }