From 60872927bd52dc9f9a41c6a4ce9f70d3e1a5c76b Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Fri, 20 Jan 2023 12:03:52 +0000 Subject: [PATCH] =?UTF-8?q?[bug-66433]=20Boolean=20functions=20should=20bl?= =?UTF-8?q?ank=20cells.=20Thanks=20to=20Patrick=20B=C3=B6ker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1906836 13f79535-47bb-0310-9956-ffa450edef68 --- .../ss/formula/functions/BooleanFunction.java | 3 ++- .../BooleanFunctionsTestCaseData.xls | Bin 30208 -> 30720 bytes .../LookupFunctionsTestCaseData.xls | Bin 70144 -> 70656 bytes 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/poi/src/main/java/org/apache/poi/ss/formula/functions/BooleanFunction.java b/poi/src/main/java/org/apache/poi/ss/formula/functions/BooleanFunction.java index 1ef3f9c056..2f0611cfba 100644 --- a/poi/src/main/java/org/apache/poi/ss/formula/functions/BooleanFunction.java +++ b/poi/src/main/java/org/apache/poi/ss/formula/functions/BooleanFunction.java @@ -18,6 +18,7 @@ package org.apache.poi.ss.formula.functions; import org.apache.poi.ss.formula.TwoDEval; +import org.apache.poi.ss.formula.eval.BlankEval; import org.apache.poi.ss.formula.eval.BoolEval; import org.apache.poi.ss.formula.eval.ErrorEval; import org.apache.poi.ss.formula.eval.EvaluationException; @@ -91,7 +92,7 @@ public abstract class BooleanFunction implements Function,ArrayFunction { continue; } - if (arg == MissingArgEval.instance) { + if (arg == MissingArgEval.instance || arg == BlankEval.instance) { tempVe = false; // missing parameters are treated as FALSE } else { tempVe = OperandResolver.coerceValueToBoolean(arg, false); diff --git a/test-data/spreadsheet/BooleanFunctionsTestCaseData.xls b/test-data/spreadsheet/BooleanFunctionsTestCaseData.xls index 44808a5112157166b966133bb171cc038d0fa487..ded3ccf19511ee9242fe3d0fa9818476b53e1f97 100644 GIT binary patch delta 2098 zcmZuyOKe+36utBOp6&P-H>8dsaq>)Jsm-T#KD0@izlab`;!mWCk5G}*IwI6|g5?wu zRX9SeK(Gm&4Jwr?u|O;kKZ`C9AS!`Wi3Oic=mI2QS0TX$gedLf%seNt!@TI;H}A~3 zXJ+ob8E^i^HveE-aW?vTf2%%1L?5Q#XWU|eIBDc`6a9?$2l@?oqF-Q7(Hb=oJ-L$4 zXN&nvp?nO+9fkN$2G*(EHVX0Pjd5&{T(p?YoHZA+m&i|7D!F4L%%8cS(Z4k7ieWxh`RMqz zvm7GI6waDUxlG}lxm;Y$o6D=k{CX~fV+&i-iJs3EO9zQoiwYW2E#kBJwbBdbnQSg+ z7PHF-B)J~5sGHpM@k2yDtiCZy^c|%6wTYnd_88G!{_e!H5#&|W)T=d%Bgn@KzcoSB zHpK@gyBSqZPyV1qcZuODji?i&+p|O$Qbez$tK=7FzB0;UhOjtH3&Jyudqr6>Y?PR$ zz#I~bNZwSHrz?1d0&~`4u82Myk|bbbpGgkyul@B zu|9ukepSaVE&k{Hn(ids;wuZ!FdzSZ;RJjj(dY72_coIl1adyn1OHZH6#mCVFT5u? z2LDKM9R5;LMBPaC!T+8dfj^uQ{8K5x-%1JoXQ^?It%;_vxSo!coisoquVU-sQV_{N zPOUbIuogy{m@YHoqIQiUG@~!mjMhbl=0=o;C_7E<sZ*MeXl2|EILU4)gW(vacT$5;r@Z{{R>@Eh+#2 delta 1435 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 EUyxEVkpKVy delta 8468 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 V?WlHm;&7T4oh$D@@D5lV{|hxq4mJP)