Author: fanningpj
Date: Mon Aug  1 16:06:59 2022
New Revision: 1903171

URL: http://svn.apache.org/viewvc?rev=1903171&view=rev
Log:
[bug-66181] fix issue with evaluation of blank string in VALUE function

Modified:
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Value.java
    
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1903171&r1=1903170&r2=1903171&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
 Mon Aug  1 16:06:59 2022
@@ -3701,8 +3701,8 @@ public final class TestXSSFBugs extends
             assertEquals(CellType.ERROR, a1.getCachedFormulaResultType());
             FormulaEvaluator evaluator = 
workbook.getCreationHelper().createFormulaEvaluator();
             CellValue cv1 = evaluator.evaluate(a1);
-            //this next line should probably return CellType.ERROR
-            assertEquals(CellType.NUMERIC, cv1.getCellType());
+            assertEquals(CellType.ERROR, cv1.getCellType());
+            assertEquals(ErrorEval.VALUE_INVALID.getErrorCode(), 
cv1.getErrorValue());
         }
     }
 }
\ No newline at end of file

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Value.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Value.java?rev=1903171&r1=1903170&r2=1903171&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Value.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Value.java 
Mon Aug  1 16:06:59 2022
@@ -23,6 +23,7 @@ import org.apache.poi.ss.formula.eval.Nu
 import org.apache.poi.ss.formula.eval.OperandResolver;
 import org.apache.poi.ss.formula.eval.ValueEval;
 import org.apache.poi.ss.usermodel.DateUtil;
+import org.apache.poi.util.StringUtil;
 
 import java.time.DateTimeException;
 
@@ -52,6 +53,9 @@ public final class Value extends Fixed1A
             return e.getErrorEval();
         }
         String strText = OperandResolver.coerceValueToString(veText);
+        if (StringUtil.isBlank(strText)) {
+            return ErrorEval.VALUE_INVALID;
+        }
         Double result = convertTextToNumber(strText);
         if (result == null) result = parseDateTime(strText);
         if (result == null) {

Modified: 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java?rev=1903171&r1=1903170&r2=1903171&view=diff
==============================================================================
--- 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java 
(original)
+++ 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java 
Mon Aug  1 16:06:59 2022
@@ -93,5 +93,6 @@ final class TestValue {
         confirmValueError(",300");
         confirmValueError("0.233,4");
         confirmValueError("1e2.5");
+        confirmValueError("");
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to