This is an automated email from the ASF dual-hosted git repository.

fanningpj pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/poi.git


The following commit(s) were added to refs/heads/trunk by this push:
     new b5f67fca04 bug-69727 decrease count when we remove merged regions 
(#837)
b5f67fca04 is described below

commit b5f67fca043fddc4d9a5e928d322d92994795944
Author: PJ Fanning <[email protected]>
AuthorDate: Tue Jul 8 23:21:35 2025 +0100

    bug-69727 decrease count when we remove merged regions (#837)
    
    * bug-69727 decrease count when we remove merged regions
    
    * extend test
    
    * fix tests
---
 poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java | 2 ++
 .../src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java   | 5 +++++
 2 files changed, 7 insertions(+)

diff --git 
a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java 
b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
index c851eda3ec..5c67853c10 100644
--- a/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
+++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
@@ -2008,6 +2008,7 @@ public class XSSFSheet extends POIXMLDocumentPart 
implements Sheet, OoxmlSheetEx
         assert(0 <= index && index < size);
         if (size > 1) {
             ctMergeCells.removeMergeCell(index);
+            ctMergeCells.setCount(ctMergeCells.getCount() - 1);
         } else {
             worksheet.unsetMergeCells();
         }
@@ -2043,6 +2044,7 @@ public class XSSFSheet extends POIXMLDocumentPart 
implements Sheet, OoxmlSheetEx
         } else {
             CTMergeCell[] newMergeCellsArray = new 
CTMergeCell[newMergeCells.size()];
             
ctMergeCells.setMergeCellArray(newMergeCells.toArray(newMergeCellsArray));
+            ctMergeCells.setCount(newMergeCells.size());
         }
     }
 
diff --git 
a/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java 
b/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
index cca87501c4..1f5e62fb74 100644
--- a/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
+++ b/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
@@ -358,6 +358,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
             sheet.removeMergedRegion(1);
             assertEquals("E5:F6", 
ctWorksheet.getMergeCells().getMergeCellArray(1).getRef());
             assertEquals(2, sheet.getNumMergedRegions());
+            assertEquals(2, ctWorksheet.getMergeCells().getCount());
             sheet.removeMergedRegion(1);
             sheet.removeMergedRegion(0);
             assertEquals(0, sheet.getNumMergedRegions());
@@ -367,11 +368,15 @@ public final class TestXSSFSheet extends BaseTestXSheet {
             assertEquals(1, sheet.addMergedRegion(region_2));
             assertEquals(2, sheet.addMergedRegion(region_3));
             assertEquals(3, sheet.addMergedRegion(region_4));
+            assertEquals(4, sheet.getNumMergedRegions());
+            assertEquals(4, ctWorksheet.getMergeCells().getCount());
             // test invalid indexes OOBE
             Set<Integer> rmIdx = new HashSet<>(Arrays.asList(5, 6));
             sheet.removeMergedRegions(rmIdx);
             rmIdx = new HashSet<>(Arrays.asList(1, 3));
             sheet.removeMergedRegions(rmIdx);
+            assertEquals(2, sheet.getNumMergedRegions());
+            assertEquals(2, ctWorksheet.getMergeCells().getCount());
             assertEquals("A1:B2", 
ctWorksheet.getMergeCells().getMergeCellArray(0).getRef());
             assertEquals("E5:F6", 
ctWorksheet.getMergeCells().getMergeCellArray(1).getRef());
         }


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

Reply via email to