You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2022/06/05 19:25:07 UTC
svn commit: r1901685 - in /poi/trunk/poi/src: main/java/org/apache/poi/ss/formula/functions/Correl.java test/java/org/apache/poi/ss/formula/functions/TestCorrel.java
Author: fanningpj
Date: Sun Jun 5 19:25:07 2022
New Revision: 1901685
URL: http://svn.apache.org/viewvc?rev=1901685&view=rev
Log:
mismatched array sizes
Modified:
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCorrel.java
Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java?rev=1901685&r1=1901684&r2=1901685&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java Sun Jun 5 19:25:07 2022
@@ -66,9 +66,13 @@ public class Correl extends Fixed2ArgFun
private List<DoubleList> getNumberArrays(ValueEval operand0, ValueEval operand1) throws EvaluationException {
double[] retval0 = collectValuesWithBlanks(operand0).toArray();
double[] retval1 = collectValuesWithBlanks(operand1).toArray();
+ if (retval0.length != retval1.length) {
+ throw new EvaluationException(ErrorEval.NA);
+ }
DoubleList filtered0 = new DoubleList();
DoubleList filtered1 = new DoubleList();
- for (int i = 0; i < retval0.length; i++) {
+ int len = Math.min(retval0.length, retval1.length);
+ for (int i = 0; i < len; i++) {
if (Double.isNaN(retval0[i]) || Double.isNaN(retval1[i])) {
//ignore
} else {
Modified: poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCorrel.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCorrel.java?rev=1901685&r1=1901684&r2=1901685&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCorrel.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCorrel.java Sun Jun 5 19:25:07 2022
@@ -22,12 +22,14 @@ import org.apache.poi.hssf.usermodel.HSS
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.FormulaError;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import static org.apache.poi.ss.util.Utils.addRow;
import static org.apache.poi.ss.util.Utils.assertDouble;
+import static org.apache.poi.ss.util.Utils.assertError;
/**
* Tests for {@link Correl}
@@ -68,6 +70,18 @@ final class TestCorrel {
}
}
+ @Test
+ void testMismatch() throws IOException {
+ try (HSSFWorkbook wb = initWorkbook1()) {
+ HSSFSheet sheet = wb.getSheetAt(0);
+ HSSFRow row = sheet.getRow(0);
+ HSSFCell cell = row.createCell(100);
+ HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+ assertError(fe, cell, "CORREL(A2:A6,B2:B5)", FormulaError.NA);
+ assertError(fe, cell, "CORREL(A2:B6,B2:B6)", FormulaError.NA);
+ }
+ }
+
private HSSFWorkbook initWorkbook1() {
return initWorkbook1(Double.valueOf(15));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org