You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by gw...@apache.org on 2017/03/14 21:39:33 UTC

svn commit: r1786953 - in /poi/trunk/src: java/org/apache/poi/ss/formula/functions/Baseifs.java ooxml/testcases/org/apache/poi/ss/formula/functions/TestSumifsXSSF.java

Author: gwoolsey
Date: Tue Mar 14 21:39:33 2017
New Revision: 1786953

URL: http://svn.apache.org/viewvc?rev=1786953&view=rev
Log:
Fixed #60858, which showed a regression of the fix for #56420 introduced by my refactoring to fix #56822.

Includes new unit test based on the bug sample file.

Added:
    poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestSumifsXSSF.java   (with props)
Modified:
    poi/trunk/src/java/org/apache/poi/ss/formula/functions/Baseifs.java

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/functions/Baseifs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/functions/Baseifs.java?rev=1786953&r1=1786952&r2=1786953&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/functions/Baseifs.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/functions/Baseifs.java Tue Mar 14 21:39:33 2017
@@ -135,7 +135,8 @@ import org.apache.poi.ss.formula.functio
                     AreaEval aeRange = ranges[i];
                     I_MatchPredicate mp = predicates[i];
 
-                    if (!mp.matches(aeRange.getRelativeValue(r, c))) {
+                    // Bugs 60858 and 56420 show predicate can be null
+                    if (mp == null || !mp.matches(aeRange.getRelativeValue(r, c))) {
                         matches = false;
                         break;
                     }

Added: poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestSumifsXSSF.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestSumifsXSSF.java?rev=1786953&view=auto
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestSumifsXSSF.java (added)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestSumifsXSSF.java Tue Mar 14 21:39:33 2017
@@ -0,0 +1,31 @@
+package org.apache.poi.ss.formula.functions;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.FormulaEvaluator;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.XSSFTestDataSamples;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class TestSumifsXSSF {
+
+    /**
+     * handle null cell predicate
+     */
+    @Test
+    public void testBug60858() {
+        Workbook wb = XSSFTestDataSamples.openSampleWorkbook("bug60858.xlsx");
+        FormulaEvaluator fe = wb.getCreationHelper().createFormulaEvaluator();
+
+        Sheet sheet = wb.getSheetAt(0);
+        Cell cell = sheet.getRow(1).getCell(5);
+        fe.evaluate(cell);
+        assertEquals(0.0, cell.getNumericCellValue(), 0.0000000000000001);
+    }
+
+}

Propchange: poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestSumifsXSSF.java
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org