From f4948c2d1428b33f2c15537022f36fe9bc9f4a74 Mon Sep 17 00:00:00 2001 From: Javen O'Neal Date: Fri, 17 Jun 2016 10:22:09 +0000 Subject: [PATCH] bug 56958: validate array formulas wasn't correctly checking for overlap with a merged region git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1748829 13f79535-47bb-0310-9956-ffa450edef68 --- src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java index 5b4013b8aa..0dc1878a97 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java @@ -395,10 +395,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet { if(cell.isPartOfArrayFormulaGroup()){ CellRangeAddress arrayRange = cell.getArrayFormulaRange(); - if (arrayRange.getNumberOfCells() > 1 && - // region.intersects(arrayRange) is more concise and probably correct. Is it equivalent? - ( arrayRange.isInRange(region.getFirstRow(), region.getFirstColumn()) || - arrayRange.isInRange(region.getFirstRow(), region.getFirstColumn())) ){ + if (arrayRange.getNumberOfCells() > 1 && region.intersects(arrayRange)) { String msg = "The range " + region.formatAsString() + " intersects with a multi-cell array formula. " + "You cannot merge cells of an array."; throw new IllegalStateException(msg); -- 2.39.5