]> source.dussan.org Git - poi.git/commitdiff
Make XSSF and HSSF consistent in getMergedRegions - return empty list if there are...
authorDavid North <dnorth@apache.org>
Wed, 23 Sep 2015 12:53:13 +0000 (12:53 +0000)
committerDavid North <dnorth@apache.org>
Wed, 23 Sep 2015 12:53:13 +0000 (12:53 +0000)
https://bz.apache.org/bugzilla/show_bug.cgi?id=58350

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1704839 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java

index 4156433bd44622a1fa8a66fd684a0a6ad8cfc856..728fedf86a8565d5cd509676f8f21af95fc42aed 100644 (file)
@@ -1090,7 +1090,6 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
      * this each time.
      *
      * @return the merged region at the specified index
-     * @throws IllegalStateException if this worksheet does not contain merged regions
      */
     @Override
     public CellRangeAddress getMergedRegion(int index) {
@@ -1107,15 +1106,14 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
      * faster than calling {@link #getMergedRegion(int)} each time.
      *
      * @return the list of merged regions
-     * @throws IllegalStateException if this worksheet does not contain merged regions
      */
     @SuppressWarnings("deprecation")
     @Override
     public List<CellRangeAddress> getMergedRegions() {
+        List<CellRangeAddress> addresses = new ArrayList<CellRangeAddress>();
         CTMergeCells ctMergeCells = worksheet.getMergeCells();
-        if(ctMergeCells == null) throw new IllegalStateException("This worksheet does not contain merged regions");
+        if(ctMergeCells == null) return addresses;
 
-        List<CellRangeAddress> addresses = new ArrayList<CellRangeAddress>();
         for(CTMergeCell ctMergeCell : ctMergeCells.getMergeCellArray()) {
             String ref = ctMergeCell.getRef();
             addresses.add(CellRangeAddress.valueOf(ref));
index 8e77b2c4996e3936986dc2b690075ca040980371..aed4465620d100ab05bfda40742f9051a1a8a1f2 100644 (file)
@@ -1382,4 +1382,11 @@ public final class TestXSSFSheet extends BaseTestSheet {
         XSSFSheet sheet = wb.createSheet();
         assertNotNull(sheet.createComment());
     }
+
+    @Test
+    public void testNoMergedRegionsIsEmptyList() {
+        XSSFWorkbook wb = new XSSFWorkbook();
+        XSSFSheet sheet = wb.createSheet();
+        assertTrue(sheet.getMergedRegions().isEmpty());
+    }
 }
\ No newline at end of file
index 4b7d8491bed2fbbcd00d54ace321dd17187750d7..723bf0d3e97bb3e289691f47bf0af5b73e21cb37 100644 (file)
@@ -657,6 +657,13 @@ public final class TestHSSFSheet extends BaseTestSheet {
         assertTrue(sheet3.getColumnWidth(0) >= minWithRow1And2);
         assertTrue(sheet3.getColumnWidth(0) <= maxWithRow1And2);
     }
+
+    @Test
+    public void testNoMergedRegionsIsEmptyList() {
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet s = wb.createSheet("Sheet1");
+        assertTrue(s.getMergedRegions().isEmpty());
+    }
     
     @Test
     public void autoSizeDate() throws Exception {