You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2019/08/15 07:54:58 UTC

svn commit: r1865208 [3/4] - in /poi/trunk/src: ooxml/testcases/org/apache/poi/xssf/model/ ooxml/testcases/org/apache/poi/xssf/streaming/ ooxml/testcases/org/apache/poi/xssf/usermodel/ ooxml/testcases/org/apache/poi/xwpf/usermodel/ testcases/org/apache...

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChart.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChart.java?rev=1865208&r1=1865207&r2=1865208&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChart.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChart.java Thu Aug 15 07:54:58 2019
@@ -21,62 +21,70 @@ import org.apache.poi.xssf.XSSFTestDataS
 
 import junit.framework.TestCase;
 
+import java.io.IOException;
+
 public final class TestXSSFChart extends TestCase {
 
-    public void testGetAccessors() {
-        XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithThreeCharts.xlsx");
-        XSSFSheet s1 = wb.getSheetAt(0);
-        XSSFSheet s2 = wb.getSheetAt(1);
-        XSSFSheet s3 = wb.getSheetAt(2);
-
-        assertEquals(0, s1.getRelations().size());
-        assertEquals(1, s2.getRelations().size());
-        assertEquals(1, s3.getRelations().size());
+    public void testGetAccessors() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithThreeCharts.xlsx")) {
+            XSSFSheet s1 = wb.getSheetAt(0);
+            XSSFSheet s2 = wb.getSheetAt(1);
+            XSSFSheet s3 = wb.getSheetAt(2);
+
+            assertEquals(0, s1.getRelations().size());
+            assertEquals(1, s2.getRelations().size());
+            assertEquals(1, s3.getRelations().size());
 
-        assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
+            assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
+        }
     }
 
     public void testGetCharts() throws Exception {
-       XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithThreeCharts.xlsx");
-
-       XSSFSheet s1 = wb.getSheetAt(0);
-       XSSFSheet s2 = wb.getSheetAt(1);
-       XSSFSheet s3 = wb.getSheetAt(2);
-
-       assertEquals(0, s1.createDrawingPatriarch().getCharts().size());
-       assertEquals(2, s2.createDrawingPatriarch().getCharts().size());
-       assertEquals(1, s3.createDrawingPatriarch().getCharts().size());
-
-       // Check the titles
-       XSSFChart chart = s2.createDrawingPatriarch().getCharts().get(0);
-       assertEquals(null, chart.getTitleText());
-
-       chart = s2.createDrawingPatriarch().getCharts().get(1);
-       assertEquals("Pie Chart Title Thingy", chart.getTitleText().getString());
-
-       chart = s3.createDrawingPatriarch().getCharts().get(0);
-       assertEquals("Sheet 3 Chart with Title", chart.getTitleText().getString());
+       try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithThreeCharts.xlsx")) {
+           XSSFSheet s1 = wb.getSheetAt(0);
+           XSSFSheet s2 = wb.getSheetAt(1);
+           XSSFSheet s3 = wb.getSheetAt(2);
+
+           assertEquals(0, s1.createDrawingPatriarch().getCharts().size());
+           assertEquals(2, s2.createDrawingPatriarch().getCharts().size());
+           assertEquals(1, s3.createDrawingPatriarch().getCharts().size());
+
+           // Check the titles
+           XSSFChart chart = s2.createDrawingPatriarch().getCharts().get(0);
+           assertNull(chart.getTitleText());
+
+           chart = s2.createDrawingPatriarch().getCharts().get(1);
+           XSSFRichTextString title = chart.getTitleText();
+           assertNotNull(title);
+           assertEquals("Pie Chart Title Thingy", title.getString());
+
+           chart = s3.createDrawingPatriarch().getCharts().get(0);
+           title = chart.getTitleText();
+           assertNotNull(title);
+           assertEquals("Sheet 3 Chart with Title", title.getString());
 
-       assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
+           assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
+       }
     }
 
 	public void testAddChartsToNewWorkbook() throws Exception {
-		XSSFWorkbook wb = new XSSFWorkbook();
-		XSSFSheet s1 = wb.createSheet();
-		XSSFDrawing d1 = s1.createDrawingPatriarch();
-		XSSFClientAnchor a1 = new XSSFClientAnchor(0, 0, 0, 0, 1, 1, 10, 30);
-		XSSFChart c1 = d1.createChart(a1);
-
-		assertEquals(1, d1.getCharts().size());
-
-		assertNotNull(c1.getGraphicFrame());
-		assertNotNull(c1.getOrAddLegend());
-
-		XSSFClientAnchor a2 = new XSSFClientAnchor(0, 0, 0, 0, 1, 11, 10, 60);
-		XSSFChart c2 = d1.createChart(a2);
-		assertNotNull(c2);
-		assertEquals(2, d1.getCharts().size());
+		try (XSSFWorkbook wb = new XSSFWorkbook()) {
+            XSSFSheet s1 = wb.createSheet();
+            XSSFDrawing d1 = s1.createDrawingPatriarch();
+            XSSFClientAnchor a1 = new XSSFClientAnchor(0, 0, 0, 0, 1, 1, 10, 30);
+            XSSFChart c1 = d1.createChart(a1);
+
+            assertEquals(1, d1.getCharts().size());
+
+            assertNotNull(c1.getGraphicFrame());
+            assertNotNull(c1.getOrAddLegend());
+
+            XSSFClientAnchor a2 = new XSSFClientAnchor(0, 0, 0, 0, 1, 11, 10, 60);
+            XSSFChart c2 = d1.createChart(a2);
+            assertNotNull(c2);
+            assertEquals(2, d1.getCharts().size());
 
-        assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
+            assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(wb));
+        }
 	}
 }

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChartSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChartSheet.java?rev=1865208&r1=1865207&r2=1865208&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChartSheet.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFChartSheet.java Thu Aug 15 07:54:58 2019
@@ -22,60 +22,65 @@ import org.apache.poi.xssf.XSSFTestDataS
 import org.junit.Test;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTChartsheet;
 
+import java.io.IOException;
+
 import static org.junit.Assert.*;
 
 public final class TestXSSFChartSheet {
 
     @Test
-    public void testXSSFFactory() {
-        XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("chart_sheet.xlsx");
-        assertEquals(4, wb.getNumberOfSheets());
-
-        //the third sheet is of type 'chartsheet'
-        assertEquals("Chart1", wb.getSheetName(2));
-        assertTrue(wb.getSheetAt(2) instanceof XSSFChartSheet);
-        assertEquals("Chart1", wb.getSheetAt(2).getSheetName());
-
-        final CTChartsheet ctChartsheet = ((XSSFChartSheet) wb.getSheetAt(2)).getCTChartsheet();
-        assertNotNull(ctChartsheet);
+    public void testXSSFFactory() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("chart_sheet.xlsx")) {
+            assertEquals(4, wb.getNumberOfSheets());
+
+            //the third sheet is of type 'chartsheet'
+            assertEquals("Chart1", wb.getSheetName(2));
+            assertTrue(wb.getSheetAt(2) instanceof XSSFChartSheet);
+            assertEquals("Chart1", wb.getSheetAt(2).getSheetName());
+
+            final CTChartsheet ctChartsheet = ((XSSFChartSheet) wb.getSheetAt(2)).getCTChartsheet();
+            assertNotNull(ctChartsheet);
+        }
     }
 
     @Test
-    public void testGetAccessors() {
-        XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("chart_sheet.xlsx");
-        XSSFChartSheet sheet = (XSSFChartSheet)wb.getSheetAt(2);
-
-        assertFalse("Row iterator for charts sheets should return zero rows",
-                sheet.iterator().hasNext());
-
-        //access to a arbitrary row
-        assertNull(sheet.getRow(1));
-
-        //some basic get* accessors
-        assertEquals(0, sheet.getNumberOfComments());
-        assertEquals(0, sheet.getNumHyperlinks());
-        assertEquals(0, sheet.getNumMergedRegions());
-        assertNull(sheet.getActiveCell());
-        assertTrue(sheet.getAutobreaks());
-        assertNull(sheet.getCellComment(new CellAddress(0, 0)));
-        assertEquals(0, sheet.getColumnBreaks().length);
-        assertTrue(sheet.getRowSumsBelow());
-        assertNotNull(sheet.createDrawingPatriarch());
-        assertNotNull(sheet.getDrawingPatriarch());
-        assertNotNull(sheet.getCTChartsheet());
+    public void testGetAccessors() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("chart_sheet.xlsx")) {
+            XSSFChartSheet sheet = (XSSFChartSheet) wb.getSheetAt(2);
+
+            assertFalse("Row iterator for charts sheets should return zero rows",
+                    sheet.iterator().hasNext());
+
+            //access to a arbitrary row
+            assertNull(sheet.getRow(1));
+
+            //some basic get* accessors
+            assertEquals(0, sheet.getNumberOfComments());
+            assertEquals(0, sheet.getNumHyperlinks());
+            assertEquals(0, sheet.getNumMergedRegions());
+            assertNull(sheet.getActiveCell());
+            assertTrue(sheet.getAutobreaks());
+            assertNull(sheet.getCellComment(new CellAddress(0, 0)));
+            assertEquals(0, sheet.getColumnBreaks().length);
+            assertTrue(sheet.getRowSumsBelow());
+            assertNotNull(sheet.createDrawingPatriarch());
+            assertNotNull(sheet.getDrawingPatriarch());
+            assertNotNull(sheet.getCTChartsheet());
+        }
     }
     
     @Test
     public void testGetCharts() throws Exception {
-       XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("chart_sheet.xlsx");
-       
-       XSSFSheet ns = wb.getSheetAt(0);
-       XSSFChartSheet cs = (XSSFChartSheet)wb.getSheetAt(2);
-       
-       assertEquals(0, ns.createDrawingPatriarch().getCharts().size());
-       assertEquals(1, cs.createDrawingPatriarch().getCharts().size());
-       
-       XSSFChart chart = cs.createDrawingPatriarch().getCharts().get(0);
-       assertNull(chart.getTitleText());
+       try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("chart_sheet.xlsx")) {
+
+           XSSFSheet ns = wb.getSheetAt(0);
+           XSSFChartSheet cs = (XSSFChartSheet) wb.getSheetAt(2);
+
+           assertEquals(0, ns.createDrawingPatriarch().getCharts().size());
+           assertEquals(1, cs.createDrawingPatriarch().getCharts().size());
+
+           XSSFChart chart = cs.createDrawingPatriarch().getCharts().get(0);
+           assertNull(chart.getTitleText());
+       }
     }
 }

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColor.java?rev=1865208&r1=1865207&r2=1865208&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColor.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColor.java Thu Aug 15 07:54:58 2019
@@ -19,6 +19,7 @@ package org.apache.poi.xssf.usermodel;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.io.IOException;
@@ -32,173 +33,169 @@ public final class TestXSSFColor {
     
    @Test
    public void testIndexedColour() throws Exception {
-      XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("48779.xlsx");
-
-      // Check the CTColor is as expected
-      XSSFColor indexed = wb.getCellStyleAt(1).getFillBackgroundXSSFColor();
-      assertEquals(true, indexed.getCTColor().isSetIndexed());
-      assertEquals(64, indexed.getCTColor().getIndexed());
-      assertEquals(false, indexed.getCTColor().isSetRgb());
-      assertEquals(null, indexed.getCTColor().getRgb());
-
-      // Now check the XSSFColor
-      // Note - 64 is a special "auto" one with no rgb equiv
-      assertEquals(64, indexed.getIndexed());
-      assertEquals(null, indexed.getRGB());
-      assertEquals(null, indexed.getRGBWithTint());
-      assertEquals(null, indexed.getARGBHex());
-      assertFalse(indexed.hasAlpha());
-      assertFalse(indexed.hasTint());
-
-      // Now move to one with indexed rgb values
-      indexed.setIndexed(59);
-      assertEquals(true, indexed.getCTColor().isSetIndexed());
-      assertEquals(59, indexed.getCTColor().getIndexed());
-      assertEquals(false, indexed.getCTColor().isSetRgb());
-      assertEquals(null, indexed.getCTColor().getRgb());
-
-      assertEquals(59, indexed.getIndexed());
-      assertEquals("FF333300", indexed.getARGBHex());
-
-      assertEquals(3, indexed.getRGB().length);
-      assertEquals(0x33, indexed.getRGB()[0]);
-      assertEquals(0x33, indexed.getRGB()[1]);
-      assertEquals(0x00, indexed.getRGB()[2]);
-
-      assertEquals(4, indexed.getARGB().length);
-      assertEquals(-1, indexed.getARGB()[0]);
-      assertEquals(0x33, indexed.getARGB()[1]);
-      assertEquals(0x33, indexed.getARGB()[2]);
-      assertEquals(0x00, indexed.getARGB()[3]);
-
-      // You don't get tinted indexed colours, sorry...
-      assertEquals(null, indexed.getRGBWithTint());
-      
-      wb.close();
+      try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("48779.xlsx")) {
+         // Check the CTColor is as expected
+         XSSFColor indexed = wb.getCellStyleAt(1).getFillBackgroundXSSFColor();
+         assertTrue(indexed.getCTColor().isSetIndexed());
+         assertEquals(64, indexed.getCTColor().getIndexed());
+         assertFalse(indexed.getCTColor().isSetRgb());
+         assertNull(indexed.getCTColor().getRgb());
+
+         // Now check the XSSFColor
+         // Note - 64 is a special "auto" one with no rgb equiv
+         assertEquals(64, indexed.getIndexed());
+         assertNull(indexed.getRGB());
+         assertNull(indexed.getRGBWithTint());
+         assertNull(indexed.getARGBHex());
+         assertFalse(indexed.hasAlpha());
+         assertFalse(indexed.hasTint());
+
+         // Now move to one with indexed rgb values
+         indexed.setIndexed(59);
+         assertTrue(indexed.getCTColor().isSetIndexed());
+         assertEquals(59, indexed.getCTColor().getIndexed());
+         assertFalse(indexed.getCTColor().isSetRgb());
+         assertNull(indexed.getCTColor().getRgb());
+
+         assertEquals(59, indexed.getIndexed());
+         assertEquals("FF333300", indexed.getARGBHex());
+
+         assertEquals(3, indexed.getRGB().length);
+         assertEquals(0x33, indexed.getRGB()[0]);
+         assertEquals(0x33, indexed.getRGB()[1]);
+         assertEquals(0x00, indexed.getRGB()[2]);
+
+         assertEquals(4, indexed.getARGB().length);
+         assertEquals(-1, indexed.getARGB()[0]);
+         assertEquals(0x33, indexed.getARGB()[1]);
+         assertEquals(0x33, indexed.getARGB()[2]);
+         assertEquals(0x00, indexed.getARGB()[3]);
+
+         // You don't get tinted indexed colours, sorry...
+         assertNull(indexed.getRGBWithTint());
+      }
    }
 
    @Test
    public void testRGBColour() throws IOException {
-      XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("50299.xlsx");
+      try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("50299.xlsx")) {
 
-      // Check the CTColor is as expected
-      XSSFColor rgb3 = wb.getCellStyleAt((short)25).getFillForegroundXSSFColor();
-      assertEquals(false, rgb3.getCTColor().isSetIndexed());
-      assertEquals(0,     rgb3.getCTColor().getIndexed());
-      assertEquals(true,  rgb3.getCTColor().isSetTint());
-      assertEquals(-0.34999, rgb3.getCTColor().getTint(), 0.00001);
-      assertEquals(true,  rgb3.getCTColor().isSetRgb());
-      assertEquals(3,     rgb3.getCTColor().getRgb().length);
-
-      // Now check the XSSFColor
-      assertEquals(0, rgb3.getIndexed());
-      assertEquals(-0.34999, rgb3.getTint(), 0.00001);
-      assertFalse(rgb3.hasAlpha());
-      assertTrue(rgb3.hasTint());
-
-      assertEquals("FFFFFFFF", rgb3.getARGBHex());
-      assertEquals(3, rgb3.getRGB().length);
-      assertEquals(-1, rgb3.getRGB()[0]);
-      assertEquals(-1, rgb3.getRGB()[1]);
-      assertEquals(-1,  rgb3.getRGB()[2]);
-
-      assertEquals(4, rgb3.getARGB().length);
-      assertEquals(-1, rgb3.getARGB()[0]);
-      assertEquals(-1, rgb3.getARGB()[1]);
-      assertEquals(-1,  rgb3.getARGB()[2]);
-      assertEquals(-1,  rgb3.getARGB()[3]);
-
-      // Tint doesn't have the alpha
-      // tint = -0.34999
-      // 255 * (1 + tint) = 165 truncated
-      // or (byte) -91 (which is 165 - 256)
-      assertEquals(3, rgb3.getRGBWithTint().length);
-      assertEquals(-91, rgb3.getRGBWithTint()[0]);
-      assertEquals(-91,  rgb3.getRGBWithTint()[1]);
-      assertEquals(-91,  rgb3.getRGBWithTint()[2]);
-
-      // Set the color to black (no theme).
-      rgb3.setRGB(new byte[] {0, 0, 0});
-      assertEquals("FF000000", rgb3.getARGBHex());
-      assertEquals(0, rgb3.getCTColor().getRgb()[0]);
-      assertEquals(0, rgb3.getCTColor().getRgb()[1]);
-      assertEquals(0, rgb3.getCTColor().getRgb()[2]);
-
-      // Set another, is fine
-      rgb3.setRGB(new byte[] {16,17,18});
-      assertFalse(rgb3.hasAlpha());
-      assertEquals("FF101112", rgb3.getARGBHex());
-      assertEquals(0x10, rgb3.getCTColor().getRgb()[0]);
-      assertEquals(0x11, rgb3.getCTColor().getRgb()[1]);
-      assertEquals(0x12, rgb3.getCTColor().getRgb()[2]);
-      
-      wb.close();
+         // Check the CTColor is as expected
+         XSSFColor rgb3 = wb.getCellStyleAt((short) 25).getFillForegroundXSSFColor();
+         assertFalse(rgb3.getCTColor().isSetIndexed());
+         assertEquals(0, rgb3.getCTColor().getIndexed());
+         assertTrue(rgb3.getCTColor().isSetTint());
+         assertEquals(-0.34999, rgb3.getCTColor().getTint(), 0.00001);
+         assertTrue(rgb3.getCTColor().isSetRgb());
+         assertEquals(3, rgb3.getCTColor().getRgb().length);
+
+         // Now check the XSSFColor
+         assertEquals(0, rgb3.getIndexed());
+         assertEquals(-0.34999, rgb3.getTint(), 0.00001);
+         assertFalse(rgb3.hasAlpha());
+         assertTrue(rgb3.hasTint());
+
+         assertEquals("FFFFFFFF", rgb3.getARGBHex());
+         assertEquals(3, rgb3.getRGB().length);
+         assertEquals(-1, rgb3.getRGB()[0]);
+         assertEquals(-1, rgb3.getRGB()[1]);
+         assertEquals(-1, rgb3.getRGB()[2]);
+
+         assertEquals(4, rgb3.getARGB().length);
+         assertEquals(-1, rgb3.getARGB()[0]);
+         assertEquals(-1, rgb3.getARGB()[1]);
+         assertEquals(-1, rgb3.getARGB()[2]);
+         assertEquals(-1, rgb3.getARGB()[3]);
+
+         // Tint doesn't have the alpha
+         // tint = -0.34999
+         // 255 * (1 + tint) = 165 truncated
+         // or (byte) -91 (which is 165 - 256)
+         assertEquals(3, rgb3.getRGBWithTint().length);
+         assertEquals(-91, rgb3.getRGBWithTint()[0]);
+         assertEquals(-91, rgb3.getRGBWithTint()[1]);
+         assertEquals(-91, rgb3.getRGBWithTint()[2]);
+
+         // Set the color to black (no theme).
+         rgb3.setRGB(new byte[]{0, 0, 0});
+         assertEquals("FF000000", rgb3.getARGBHex());
+         assertEquals(0, rgb3.getCTColor().getRgb()[0]);
+         assertEquals(0, rgb3.getCTColor().getRgb()[1]);
+         assertEquals(0, rgb3.getCTColor().getRgb()[2]);
+
+         // Set another, is fine
+         rgb3.setRGB(new byte[]{16, 17, 18});
+         assertFalse(rgb3.hasAlpha());
+         assertEquals("FF101112", rgb3.getARGBHex());
+         assertEquals(0x10, rgb3.getCTColor().getRgb()[0]);
+         assertEquals(0x11, rgb3.getCTColor().getRgb()[1]);
+         assertEquals(0x12, rgb3.getCTColor().getRgb()[2]);
+      }
    }
 
    @Test
    public void testARGBColour() throws IOException {
-      XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("48779.xlsx");
+      try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("48779.xlsx")) {
 
-      // Check the CTColor is as expected
-      XSSFColor rgb4 = wb.getCellStyleAt((short)1).getFillForegroundXSSFColor();
-      assertEquals(false, rgb4.getCTColor().isSetIndexed());
-      assertEquals(0,     rgb4.getCTColor().getIndexed());
-      assertEquals(true, rgb4.getCTColor().isSetRgb());
-      assertEquals(4, rgb4.getCTColor().getRgb().length);
-
-      // Now check the XSSFColor
-      assertEquals(0, rgb4.getIndexed());
-      assertEquals(0.0, rgb4.getTint(), 0);
-      assertFalse(rgb4.hasTint());
-      assertTrue(rgb4.hasAlpha());
-
-      assertEquals("FFFF0000", rgb4.getARGBHex());
-      assertEquals(3, rgb4.getRGB().length);
-      assertEquals(-1, rgb4.getRGB()[0]);
-      assertEquals(0,  rgb4.getRGB()[1]);
-      assertEquals(0,  rgb4.getRGB()[2]);
-
-      assertEquals(4, rgb4.getARGB().length);
-      assertEquals(-1, rgb4.getARGB()[0]);
-      assertEquals(-1, rgb4.getARGB()[1]);
-      assertEquals(0,  rgb4.getARGB()[2]);
-      assertEquals(0,  rgb4.getARGB()[3]);
-
-      // Tint doesn't have the alpha
-      assertEquals(3, rgb4.getRGBWithTint().length);
-      assertEquals(-1, rgb4.getRGBWithTint()[0]);
-      assertEquals(0,  rgb4.getRGBWithTint()[1]);
-      assertEquals(0,  rgb4.getRGBWithTint()[2]);
-
-
-      // Turn on tinting, and check it behaves
-      // TODO These values are suspected to be wrong...
-      rgb4.setTint(0.4);
-      assertTrue(rgb4.hasTint());
-      assertEquals(0.4, rgb4.getTint(), 0);
-
-      assertEquals(3, rgb4.getRGBWithTint().length);
-      assertEquals(-1, rgb4.getRGBWithTint()[0]);
-      assertEquals(102,  rgb4.getRGBWithTint()[1]);
-      assertEquals(102,  rgb4.getRGBWithTint()[2]);
-      
-      wb.close();
+         // Check the CTColor is as expected
+         XSSFColor rgb4 = wb.getCellStyleAt((short) 1).getFillForegroundXSSFColor();
+         assertFalse(rgb4.getCTColor().isSetIndexed());
+         assertEquals(0, rgb4.getCTColor().getIndexed());
+         assertTrue(rgb4.getCTColor().isSetRgb());
+         assertEquals(4, rgb4.getCTColor().getRgb().length);
+
+         // Now check the XSSFColor
+         assertEquals(0, rgb4.getIndexed());
+         assertEquals(0.0, rgb4.getTint(), 0);
+         assertFalse(rgb4.hasTint());
+         assertTrue(rgb4.hasAlpha());
+
+         assertEquals("FFFF0000", rgb4.getARGBHex());
+         assertEquals(3, rgb4.getRGB().length);
+         assertEquals(-1, rgb4.getRGB()[0]);
+         assertEquals(0, rgb4.getRGB()[1]);
+         assertEquals(0, rgb4.getRGB()[2]);
+
+         assertEquals(4, rgb4.getARGB().length);
+         assertEquals(-1, rgb4.getARGB()[0]);
+         assertEquals(-1, rgb4.getARGB()[1]);
+         assertEquals(0, rgb4.getARGB()[2]);
+         assertEquals(0, rgb4.getARGB()[3]);
+
+         // Tint doesn't have the alpha
+         assertEquals(3, rgb4.getRGBWithTint().length);
+         assertEquals(-1, rgb4.getRGBWithTint()[0]);
+         assertEquals(0, rgb4.getRGBWithTint()[1]);
+         assertEquals(0, rgb4.getRGBWithTint()[2]);
+
+
+         // Turn on tinting, and check it behaves
+         // TODO These values are suspected to be wrong...
+         rgb4.setTint(0.4);
+         assertTrue(rgb4.hasTint());
+         assertEquals(0.4, rgb4.getTint(), 0);
+
+         assertEquals(3, rgb4.getRGBWithTint().length);
+         assertEquals(-1, rgb4.getRGBWithTint()[0]);
+         assertEquals(102, rgb4.getRGBWithTint()[1]);
+         assertEquals(102, rgb4.getRGBWithTint()[2]);
+      }
    }
    
    @Test
    public void testCustomIndexedColour() throws Exception {
-       XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("customIndexedColors.xlsx");
-       XSSFCell cell = wb.getSheetAt(1).getRow(0).getCell(0);
-       XSSFColor color = cell.getCellStyle().getFillForegroundColorColor();
-       CTColors ctColors = wb.getStylesSource().getCTStylesheet().getColors();
-
-       CTRgbColor ctRgbColor = ctColors.getIndexedColors()
-               .getRgbColorList()
-               .get(color.getIndex());
+       try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("customIndexedColors.xlsx")) {
+          XSSFCell cell = wb.getSheetAt(1).getRow(0).getCell(0);
+          XSSFColor color = cell.getCellStyle().getFillForegroundColorColor();
+          CTColors ctColors = wb.getStylesSource().getCTStylesheet().getColors();
+
+          CTRgbColor ctRgbColor = ctColors.getIndexedColors()
+                  .getRgbColorList()
+                  .get(color.getIndex());
 
-       String hexRgb = ctRgbColor.getDomNode().getAttributes().getNamedItem("rgb").getNodeValue();
+          String hexRgb = ctRgbColor.getDomNode().getAttributes().getNamedItem("rgb").getNodeValue();
 
-       assertEquals(hexRgb, color.getARGBHex());
-      
+          assertEquals(hexRgb, color.getARGBHex());
+       }
    }
 }

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java?rev=1865208&r1=1865207&r2=1865208&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java Thu Aug 15 07:54:58 2019
@@ -53,30 +53,29 @@ public final class TestXSSFFormulaEvalua
 
     @Test
     public void testSharedFormulas_evaluateInCell() throws IOException {
-        XSSFWorkbook wb = (XSSFWorkbook)_testDataProvider.openSampleWorkbook("49872.xlsx");
-        FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
-        XSSFSheet sheet = wb.getSheetAt(0);
-
-        double result = 3.0;
-
-        // B3 is a master shared formula, C3 and D3 don't have the formula written in their f element.
-        // Instead, the attribute si for a particular cell is used to figure what the formula expression
-        // should be based on the cell's relative location to the master formula, e.g.
-        // B3:        <f t="shared" ref="B3:D3" si="0">B1+B2</f>
-        // C3 and D3: <f t="shared" si="0"/>
-
-        // get B3 and evaluate it in the cell
-        XSSFCell b3 = sheet.getRow(2).getCell(1);
-        assertEquals(result, evaluator.evaluateInCell(b3).getNumericCellValue(), 0);
-
-        //at this point the master formula is gone, but we are still able to evaluate dependent cells
-        XSSFCell c3 = sheet.getRow(2).getCell(2);
-        assertEquals(result, evaluator.evaluateInCell(c3).getNumericCellValue(), 0);
+        try (XSSFWorkbook wb = (XSSFWorkbook)_testDataProvider.openSampleWorkbook("49872.xlsx")) {
+            FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
+            XSSFSheet sheet = wb.getSheetAt(0);
 
-        XSSFCell d3 = sheet.getRow(2).getCell(3);
-        assertEquals(result, evaluator.evaluateInCell(d3).getNumericCellValue(), 0);
-        
-        wb.close();
+            double result = 3.0;
+
+            // B3 is a master shared formula, C3 and D3 don't have the formula written in their f element.
+            // Instead, the attribute si for a particular cell is used to figure what the formula expression
+            // should be based on the cell's relative location to the master formula, e.g.
+            // B3:        <f t="shared" ref="B3:D3" si="0">B1+B2</f>
+            // C3 and D3: <f t="shared" si="0"/>
+
+            // get B3 and evaluate it in the cell
+            XSSFCell b3 = sheet.getRow(2).getCell(1);
+            assertEquals(result, evaluator.evaluateInCell(b3).getNumericCellValue(), 0);
+
+            //at this point the master formula is gone, but we are still able to evaluate dependent cells
+            XSSFCell c3 = sheet.getRow(2).getCell(2);
+            assertEquals(result, evaluator.evaluateInCell(c3).getNumericCellValue(), 0);
+
+            XSSFCell d3 = sheet.getRow(2).getCell(3);
+            assertEquals(result, evaluator.evaluateInCell(d3).getNumericCellValue(), 0);
+        }
     }
 
     /**
@@ -84,32 +83,31 @@ public final class TestXSSFFormulaEvalua
      */
     @Test
     public void testEvaluateColumnGreaterThan255() throws IOException {
-        XSSFWorkbook wb = (XSSFWorkbook) _testDataProvider.openSampleWorkbook("50096.xlsx");
-        XSSFFormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
+        try (XSSFWorkbook wb = (XSSFWorkbook) _testDataProvider.openSampleWorkbook("50096.xlsx")) {
+            XSSFFormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
 
-        /*
-         *  The first row simply contains the numbers 1 - 300.
-         *  The second row simply refers to the cell value above in the first row by a simple formula.
-         */
-        for (int i = 245; i < 265; i++) {
-            XSSFCell cell_noformula = wb.getSheetAt(0).getRow(0).getCell(i);
-            XSSFCell cell_formula = wb.getSheetAt(0).getRow(1).getCell(i);
-
-            CellReference ref_noformula = new CellReference(cell_noformula.getRowIndex(), cell_noformula.getColumnIndex());
-            CellReference ref_formula = new CellReference(cell_noformula.getRowIndex(), cell_noformula.getColumnIndex());
-            String fmla = cell_formula.getCellFormula();
-            // assure that the formula refers to the cell above.
-            // the check below is 'deep' and involves conversion of the shared formula:
-            // in the sample file a shared formula in GN1 is spanned in the range GN2:IY2,
-            assertEquals(ref_noformula.formatAsString(), fmla);
-
-            CellValue cv_noformula = evaluator.evaluate(cell_noformula);
-            CellValue cv_formula = evaluator.evaluate(cell_formula);
-            assertEquals("Wrong evaluation result in " + ref_formula.formatAsString(),
-                    cv_noformula.getNumberValue(), cv_formula.getNumberValue(), 0);
+            /*
+             *  The first row simply contains the numbers 1 - 300.
+             *  The second row simply refers to the cell value above in the first row by a simple formula.
+             */
+            for (int i = 245; i < 265; i++) {
+                XSSFCell cell_noformula = wb.getSheetAt(0).getRow(0).getCell(i);
+                XSSFCell cell_formula = wb.getSheetAt(0).getRow(1).getCell(i);
+
+                CellReference ref_noformula = new CellReference(cell_noformula.getRowIndex(), cell_noformula.getColumnIndex());
+                CellReference ref_formula = new CellReference(cell_noformula.getRowIndex(), cell_noformula.getColumnIndex());
+                String fmla = cell_formula.getCellFormula();
+                // assure that the formula refers to the cell above.
+                // the check below is 'deep' and involves conversion of the shared formula:
+                // in the sample file a shared formula in GN1 is spanned in the range GN2:IY2,
+                assertEquals(ref_noformula.formatAsString(), fmla);
+
+                CellValue cv_noformula = evaluator.evaluate(cell_noformula);
+                CellValue cv_formula = evaluator.evaluate(cell_formula);
+                assertEquals("Wrong evaluation result in " + ref_formula.formatAsString(),
+                        cv_noformula.getNumberValue(), cv_formula.getNumberValue(), 0);
+            }
         }
-        
-        wb.close();
     }
     
     /**
@@ -119,105 +117,110 @@ public final class TestXSSFFormulaEvalua
      */
     @Test
     public void testReferencesToOtherWorkbooks() throws Exception {
-        XSSFWorkbook wb = (XSSFWorkbook) _testDataProvider.openSampleWorkbook("ref2-56737.xlsx");
-        XSSFFormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
-        XSSFSheet s = wb.getSheetAt(0);
-        
-        // References to a .xlsx file
-        Row rXSLX = s.getRow(2);
-        Cell cXSLX_cell = rXSLX.getCell(4);
-        Cell cXSLX_sNR  = rXSLX.getCell(6);
-        Cell cXSLX_gNR  = rXSLX.getCell(8);
-        assertEquals("[1]Uses!$A$1",        cXSLX_cell.getCellFormula());
-        assertEquals("[1]Defines!NR_To_A1", cXSLX_sNR.getCellFormula());
-        assertEquals("[1]!NR_Global_B2",    cXSLX_gNR.getCellFormula());
-        
-        assertEquals("Hello!", cXSLX_cell.getStringCellValue());
-        assertEquals("Test A1", cXSLX_sNR.getStringCellValue());
-        assertEquals(142.0, cXSLX_gNR.getNumericCellValue(), 0);
-        
-        // References to a .xls file
-        Row rXSL = s.getRow(4);
-        Cell cXSL_cell = rXSL.getCell(4);
-        Cell cXSL_sNR  = rXSL.getCell(6);
-        Cell cXSL_gNR  = rXSL.getCell(8);
-        assertEquals("[2]Uses!$C$1",        cXSL_cell.getCellFormula());
-        assertEquals("[2]Defines!NR_To_A1", cXSL_sNR.getCellFormula());
-        assertEquals("[2]!NR_Global_B2",    cXSL_gNR.getCellFormula());
-        
-        assertEquals("Hello!", cXSL_cell.getStringCellValue());
-        assertEquals("Test A1", cXSL_sNR.getStringCellValue());
-        assertEquals(142.0, cXSL_gNR.getNumericCellValue(), 0);
-        
-        // Try to evaluate without references, won't work
-        // (At least, not unit we fix bug #56752 that is)
-        try {
-            evaluator.evaluate(cXSL_cell);
-            fail("Without a fix for #56752, shouldn't be able to evaluate a " +
-                 "reference to a non-provided linked workbook");
-        } catch(Exception e) {
-            // expected here
-        }
-        
-        // Setup the environment
-        Map<String,FormulaEvaluator> evaluators = new HashMap<>();
-        evaluators.put("ref2-56737.xlsx", evaluator);
-        evaluators.put("56737.xlsx", 
-                _testDataProvider.openSampleWorkbook("56737.xlsx").getCreationHelper().createFormulaEvaluator());
-        evaluators.put("56737.xls", 
-                HSSFTestDataSamples.openSampleWorkbook("56737.xls").getCreationHelper().createFormulaEvaluator());
-        evaluator.setupReferencedWorkbooks(evaluators);
-        
-        // Try evaluating all of them, ensure we don't blow up
-        for(Row r : s) {
-            for (Cell c : r) {
-                evaluator.evaluate(c);
+        try (XSSFWorkbook wb = (XSSFWorkbook) _testDataProvider.openSampleWorkbook("ref2-56737.xlsx")) {
+            XSSFFormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
+            XSSFSheet s = wb.getSheetAt(0);
+
+            // References to a .xlsx file
+            Row rXSLX = s.getRow(2);
+            Cell cXSLX_cell = rXSLX.getCell(4);
+            Cell cXSLX_sNR = rXSLX.getCell(6);
+            Cell cXSLX_gNR = rXSLX.getCell(8);
+            assertEquals("[1]Uses!$A$1", cXSLX_cell.getCellFormula());
+            assertEquals("[1]Defines!NR_To_A1", cXSLX_sNR.getCellFormula());
+            assertEquals("[1]!NR_Global_B2", cXSLX_gNR.getCellFormula());
+
+            assertEquals("Hello!", cXSLX_cell.getStringCellValue());
+            assertEquals("Test A1", cXSLX_sNR.getStringCellValue());
+            assertEquals(142.0, cXSLX_gNR.getNumericCellValue(), 0);
+
+            // References to a .xls file
+            Row rXSL = s.getRow(4);
+            Cell cXSL_cell = rXSL.getCell(4);
+            Cell cXSL_sNR = rXSL.getCell(6);
+            Cell cXSL_gNR = rXSL.getCell(8);
+            assertEquals("[2]Uses!$C$1", cXSL_cell.getCellFormula());
+            assertEquals("[2]Defines!NR_To_A1", cXSL_sNR.getCellFormula());
+            assertEquals("[2]!NR_Global_B2", cXSL_gNR.getCellFormula());
+
+            assertEquals("Hello!", cXSL_cell.getStringCellValue());
+            assertEquals("Test A1", cXSL_sNR.getStringCellValue());
+            assertEquals(142.0, cXSL_gNR.getNumericCellValue(), 0);
+
+            // Try to evaluate without references, won't work
+            // (At least, not unit we fix bug #56752 that is)
+            try {
+                evaluator.evaluate(cXSL_cell);
+                fail("Without a fix for #56752, shouldn't be able to evaluate a " +
+                        "reference to a non-provided linked workbook");
+            } catch (Exception e) {
+                // expected here
             }
-        }
-        // And evaluate the other way too
-        evaluator.evaluateAll();
-        
-        // Static evaluator won't work, as no references passed in
-        try {
-            XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
-            fail("Static method lacks references, shouldn't work");
-        } catch(Exception e) {
-            // expected here
-        }
-        
-        
-        // Evaluate specific cells and check results
-        assertEquals("\"Hello!\"",  evaluator.evaluate(cXSLX_cell).formatAsString());
-        assertEquals("\"Test A1\"", evaluator.evaluate(cXSLX_sNR).formatAsString());
-        assertEquals("142.0",   evaluator.evaluate(cXSLX_gNR).formatAsString());
-
-        assertEquals("\"Hello!\"",  evaluator.evaluate(cXSL_cell).formatAsString());
-        assertEquals("\"Test A1\"", evaluator.evaluate(cXSL_sNR).formatAsString());
-        assertEquals("142.0",   evaluator.evaluate(cXSL_gNR).formatAsString());
-        
-        
-        // Add another formula referencing these workbooks
-        Cell cXSL_cell2 = rXSL.createCell(40);
-        cXSL_cell2.setCellFormula("[56737.xls]Uses!$C$1");
-        // TODO Shouldn't it become [2] like the others?
-        assertEquals("[56737.xls]Uses!$C$1", cXSL_cell2.getCellFormula());
-        assertEquals("\"Hello!\"",  evaluator.evaluate(cXSL_cell2).formatAsString());
-        
-        
-        // Now add a formula that refers to yet another (different) workbook
-        // Won't work without the workbook being linked
-        Cell cXSLX_nw_cell = rXSLX.createCell(42);
-        try {
-            cXSLX_nw_cell.setCellFormula("[alt.xlsx]Sheet1!$A$1");
-            fail("New workbook not linked, shouldn't be able to add");
-        } catch (Exception e) {
-            // expected here
-        }
-        
-        // Link and re-try
-        try (Workbook alt = new XSSFWorkbook()) {
-            alt.createSheet().createRow(0).createCell(0).setCellValue("In another workbook");
-            // TODO Implement the rest of this, see bug #57184
+
+            // Setup the environment
+            Map<String, FormulaEvaluator> evaluators = new HashMap<>();
+            evaluators.put("ref2-56737.xlsx", evaluator);
+            Workbook wbEval1 = _testDataProvider.openSampleWorkbook("56737.xlsx");
+            evaluators.put("56737.xlsx",
+                    wbEval1.getCreationHelper().createFormulaEvaluator());
+            Workbook wbEval2 = HSSFTestDataSamples.openSampleWorkbook("56737.xls");
+            evaluators.put("56737.xls",
+                    wbEval2.getCreationHelper().createFormulaEvaluator());
+            evaluator.setupReferencedWorkbooks(evaluators);
+
+            // Try evaluating all of them, ensure we don't blow up
+            for (Row r : s) {
+                for (Cell c : r) {
+                    evaluator.evaluate(c);
+                }
+            }
+            // And evaluate the other way too
+            evaluator.evaluateAll();
+
+            // Static evaluator won't work, as no references passed in
+            try {
+                XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
+                fail("Static method lacks references, shouldn't work");
+            } catch (Exception e) {
+                // expected here
+            }
+
+
+            // Evaluate specific cells and check results
+            assertEquals("\"Hello!\"", evaluator.evaluate(cXSLX_cell).formatAsString());
+            assertEquals("\"Test A1\"", evaluator.evaluate(cXSLX_sNR).formatAsString());
+            assertEquals("142.0", evaluator.evaluate(cXSLX_gNR).formatAsString());
+
+            assertEquals("\"Hello!\"", evaluator.evaluate(cXSL_cell).formatAsString());
+            assertEquals("\"Test A1\"", evaluator.evaluate(cXSL_sNR).formatAsString());
+            assertEquals("142.0", evaluator.evaluate(cXSL_gNR).formatAsString());
+
+
+            // Add another formula referencing these workbooks
+            Cell cXSL_cell2 = rXSL.createCell(40);
+            cXSL_cell2.setCellFormula("[56737.xls]Uses!$C$1");
+            // TODO Shouldn't it become [2] like the others?
+            assertEquals("[56737.xls]Uses!$C$1", cXSL_cell2.getCellFormula());
+            assertEquals("\"Hello!\"", evaluator.evaluate(cXSL_cell2).formatAsString());
+
+
+            // Now add a formula that refers to yet another (different) workbook
+            // Won't work without the workbook being linked
+            Cell cXSLX_nw_cell = rXSLX.createCell(42);
+            try {
+                cXSLX_nw_cell.setCellFormula("[alt.xlsx]Sheet1!$A$1");
+                fail("New workbook not linked, shouldn't be able to add");
+            } catch (Exception e) {
+                // expected here
+            }
+
+            wbEval1.close();
+            wbEval2.close();
+
+            // Link and re-try
+            try (Workbook alt = new XSSFWorkbook()) {
+                alt.createSheet().createRow(0).createCell(0).setCellValue("In another workbook");
+                // TODO Implement the rest of this, see bug #57184
 /*
             wb.linkExternalWorkbook("alt.xlsx", alt);
 
@@ -238,9 +241,8 @@ public final class TestXSSFFormulaEvalua
             evaluator.evaluate(cXSLX_nw_cell);
             assertEquals("In another workbook", cXSLX_nw_cell.getStringCellValue());
 */
+            }
         }
-        
-        wb.close();
     }
     
     /**
@@ -389,63 +391,66 @@ public final class TestXSSFFormulaEvalua
 
     // FIXME: use junit4 parametrization
     private static void verifyAllFormulasInWorkbookCanBeEvaluated(String sampleWorkbook) throws IOException {
-        XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook(sampleWorkbook);
-        XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
-        wb.close();
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook(sampleWorkbook)) {
+            XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
+        }
     }
 
     @Test
-    public void test59736() {
-        Workbook wb = XSSFTestDataSamples.openSampleWorkbook("59736.xlsx");
-        FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
-        Cell cell = wb.getSheetAt(0).getRow(0).getCell(0);
-        assertEquals(1, cell.getNumericCellValue(), 0.001);
-
-        cell = wb.getSheetAt(0).getRow(1).getCell(0);
-        CellValue value = evaluator.evaluate(cell);
-        assertEquals(1, value.getNumberValue(), 0.001);
+    public void test59736() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("59736.xlsx")) {
+            FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
+            Cell cell = wb.getSheetAt(0).getRow(0).getCell(0);
+            assertEquals(1, cell.getNumericCellValue(), 0.001);
 
-        cell = wb.getSheetAt(0).getRow(2).getCell(0);
-        value = evaluator.evaluate(cell);
-        assertEquals(1, value.getNumberValue(), 0.001);
+            cell = wb.getSheetAt(0).getRow(1).getCell(0);
+            CellValue value = evaluator.evaluate(cell);
+            assertEquals(1, value.getNumberValue(), 0.001);
+
+            cell = wb.getSheetAt(0).getRow(2).getCell(0);
+            value = evaluator.evaluate(cell);
+            assertEquals(1, value.getNumberValue(), 0.001);
+        }
     }
     
     @Test
     public void evaluateInCellReturnsSameDataType() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        wb.createSheet().createRow(0).createCell(0);
-        XSSFFormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
-        XSSFCell cell = wb.getSheetAt(0).getRow(0).getCell(0);
-        XSSFCell same = evaluator.evaluateInCell(cell);
-        assertSame(cell, same);
-        wb.close();
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
+            wb.createSheet().createRow(0).createCell(0);
+            XSSFFormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
+            XSSFCell cell = wb.getSheetAt(0).getRow(0).getCell(0);
+            XSSFCell same = evaluator.evaluateInCell(cell);
+            assertSame(cell, same);
+        }
     }
     
     @Test
-    public void testBug61468() {
-        Workbook wb = XSSFTestDataSamples.openSampleWorkbook("simple-monthly-budget.xlsx");
-        FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
-        Cell cell = wb.getSheetAt(0).getRow(8).getCell(4);
-        assertEquals(3750, cell.getNumericCellValue(), 0.001);
+    public void testBug61468() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("simple-monthly-budget.xlsx")) {
+            FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
+            Cell cell = wb.getSheetAt(0).getRow(8).getCell(4);
+            assertEquals(3750, cell.getNumericCellValue(), 0.001);
 
-        CellValue value = evaluator.evaluate(cell);
-        assertEquals(3750, value.getNumberValue(), 0.001);
+            CellValue value = evaluator.evaluate(cell);
+            assertEquals(3750, value.getNumberValue(), 0.001);
+        }
     }
     
     @Test
     @Ignore // this is from an open bug/discussion over handling localization for number formats
-    public void testBug61495() {
-        Workbook wb = XSSFTestDataSamples.openSampleWorkbook("61495-test.xlsm");
-        FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
-        Cell cell = wb.getSheetAt(0).getRow(0).getCell(1);
+    public void testBug61495() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("61495-test.xlsm")) {
+            FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
+            Cell cell = wb.getSheetAt(0).getRow(0).getCell(1);
 //        assertEquals("D 67.10", cell.getStringCellValue());
-        
-        CellValue value = evaluator.evaluate(cell);
-        assertEquals("D 67.10",
-                value.getStringValue());
-        
-        assertEquals("D 0,068",
-                evaluator.evaluate(wb.getSheetAt(0).getRow(1).getCell(1)).getStringValue());
+
+            CellValue value = evaluator.evaluate(cell);
+            assertEquals("D 67.10",
+                    value.getStringValue());
+
+            assertEquals("D 0,068",
+                    evaluator.evaluate(wb.getSheetAt(0).getRow(1).getCell(1)).getStringValue());
+        }
     }
 
     

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java?rev=1865208&r1=1865207&r2=1865208&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFHyperlink.java Thu Aug 15 07:54:58 2019
@@ -39,15 +39,16 @@ public final class TestXSSFHyperlink ext
     }
 
     @Test
-    public void testLoadExisting() {
-        XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithMoreVariousData.xlsx");
-        assertEquals(3, workbook.getNumberOfSheets());
-
-        XSSFSheet sheet = workbook.getSheetAt(0);
-
-        // Check the hyperlinks
-        assertEquals(4, sheet.getNumHyperlinks());
-        doTestHyperlinkContents(sheet);
+    public void testLoadExisting() throws IOException {
+        try (XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithMoreVariousData.xlsx")) {
+            assertEquals(3, workbook.getNumberOfSheets());
+
+            XSSFSheet sheet = workbook.getSheetAt(0);
+
+            // Check the hyperlinks
+            assertEquals(4, sheet.getNumHyperlinks());
+            doTestHyperlinkContents(sheet);
+        }
     }
 
     @Test
@@ -117,73 +118,74 @@ public final class TestXSSFHyperlink ext
     }
 
     @Test
-    public void testLoadSave() {
-        XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithMoreVariousData.xlsx");
-        CreationHelper createHelper = workbook.getCreationHelper();
-        assertEquals(3, workbook.getNumberOfSheets());
-        XSSFSheet sheet = workbook.getSheetAt(0);
+    public void testLoadSave() throws IOException {
+        try (XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("WithMoreVariousData.xlsx")) {
+            CreationHelper createHelper = workbook.getCreationHelper();
+            assertEquals(3, workbook.getNumberOfSheets());
+            XSSFSheet sheet = workbook.getSheetAt(0);
 
-        // Check hyperlinks
-        assertEquals(4, sheet.getNumHyperlinks());
-        doTestHyperlinkContents(sheet);
+            // Check hyperlinks
+            assertEquals(4, sheet.getNumHyperlinks());
+            doTestHyperlinkContents(sheet);
 
 
-        // Write out, and check
+            // Write out, and check
 
-        // Load up again, check all links still there
-        XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(workbook);
-        assertEquals(3, wb2.getNumberOfSheets());
-        assertNotNull(wb2.getSheetAt(0));
-        assertNotNull(wb2.getSheetAt(1));
-        assertNotNull(wb2.getSheetAt(2));
+            // Load up again, check all links still there
+            XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(workbook);
+            assertEquals(3, wb2.getNumberOfSheets());
+            assertNotNull(wb2.getSheetAt(0));
+            assertNotNull(wb2.getSheetAt(1));
+            assertNotNull(wb2.getSheetAt(2));
 
-        sheet = wb2.getSheetAt(0);
+            sheet = wb2.getSheetAt(0);
 
 
-        // Check hyperlinks again
-        assertEquals(4, sheet.getNumHyperlinks());
-        doTestHyperlinkContents(sheet);
+            // Check hyperlinks again
+            assertEquals(4, sheet.getNumHyperlinks());
+            doTestHyperlinkContents(sheet);
 
 
-        // Add one more, and re-check
-        Row r17 = sheet.createRow(17);
-        Cell r17c = r17.createCell(2);
+            // Add one more, and re-check
+            Row r17 = sheet.createRow(17);
+            Cell r17c = r17.createCell(2);
 
-        Hyperlink hyperlink = createHelper.createHyperlink(HyperlinkType.URL);
-        hyperlink.setAddress("http://poi.apache.org/spreadsheet/");
-        hyperlink.setLabel("POI SS Link");
-        r17c.setHyperlink(hyperlink);
+            Hyperlink hyperlink = createHelper.createHyperlink(HyperlinkType.URL);
+            hyperlink.setAddress("http://poi.apache.org/spreadsheet/");
+            hyperlink.setLabel("POI SS Link");
+            r17c.setHyperlink(hyperlink);
 
-        assertEquals(5, sheet.getNumHyperlinks());
-        doTestHyperlinkContents(sheet);
+            assertEquals(5, sheet.getNumHyperlinks());
+            doTestHyperlinkContents(sheet);
 
-        assertEquals(HyperlinkType.URL,
-                sheet.getRow(17).getCell(2).getHyperlink().getType());
-        assertEquals("POI SS Link",
-                sheet.getRow(17).getCell(2).getHyperlink().getLabel());
-        assertEquals("http://poi.apache.org/spreadsheet/",
-                sheet.getRow(17).getCell(2).getHyperlink().getAddress());
+            assertEquals(HyperlinkType.URL,
+                    sheet.getRow(17).getCell(2).getHyperlink().getType());
+            assertEquals("POI SS Link",
+                    sheet.getRow(17).getCell(2).getHyperlink().getLabel());
+            assertEquals("http://poi.apache.org/spreadsheet/",
+                    sheet.getRow(17).getCell(2).getHyperlink().getAddress());
 
 
-        // Save and re-load once more
+            // Save and re-load once more
 
-        XSSFWorkbook wb3 = XSSFTestDataSamples.writeOutAndReadBack(wb2);
-        assertEquals(3, wb3.getNumberOfSheets());
-        assertNotNull(wb3.getSheetAt(0));
-        assertNotNull(wb3.getSheetAt(1));
-        assertNotNull(wb3.getSheetAt(2));
+            XSSFWorkbook wb3 = XSSFTestDataSamples.writeOutAndReadBack(wb2);
+            assertEquals(3, wb3.getNumberOfSheets());
+            assertNotNull(wb3.getSheetAt(0));
+            assertNotNull(wb3.getSheetAt(1));
+            assertNotNull(wb3.getSheetAt(2));
 
-        sheet = wb3.getSheetAt(0);
+            sheet = wb3.getSheetAt(0);
 
-        assertEquals(5, sheet.getNumHyperlinks());
-        doTestHyperlinkContents(sheet);
+            assertEquals(5, sheet.getNumHyperlinks());
+            doTestHyperlinkContents(sheet);
 
-        assertEquals(HyperlinkType.URL,
-                sheet.getRow(17).getCell(2).getHyperlink().getType());
-        assertEquals("POI SS Link",
-                sheet.getRow(17).getCell(2).getHyperlink().getLabel());
-        assertEquals("http://poi.apache.org/spreadsheet/",
-                sheet.getRow(17).getCell(2).getHyperlink().getAddress());
+            assertEquals(HyperlinkType.URL,
+                    sheet.getRow(17).getCell(2).getHyperlink().getType());
+            assertEquals("POI SS Link",
+                    sheet.getRow(17).getCell(2).getHyperlink().getLabel());
+            assertEquals("http://poi.apache.org/spreadsheet/",
+                    sheet.getRow(17).getCell(2).getHyperlink().getAddress());
+        }
     }
 
     /**
@@ -198,8 +200,7 @@ public final class TestXSSFHyperlink ext
         // First is a link to poi
         assertEquals(HyperlinkType.URL,
                 sheet.getRow(3).getCell(2).getHyperlink().getType());
-        assertEquals(null,
-                sheet.getRow(3).getCell(2).getHyperlink().getLabel());
+        assertNull(sheet.getRow(3).getCell(2).getHyperlink().getLabel());
         assertEquals("http://poi.apache.org/",
                 sheet.getRow(3).getCell(2).getHyperlink().getAddress());
 
@@ -214,60 +215,63 @@ public final class TestXSSFHyperlink ext
         // Next is a file
         assertEquals(HyperlinkType.FILE,
                 sheet.getRow(15).getCell(2).getHyperlink().getType());
-        assertEquals(null,
-                sheet.getRow(15).getCell(2).getHyperlink().getLabel());
+        assertNull(sheet.getRow(15).getCell(2).getHyperlink().getLabel());
         assertEquals("WithVariousData.xlsx",
                 sheet.getRow(15).getCell(2).getHyperlink().getAddress());
 
         // Last is a mailto
         assertEquals(HyperlinkType.EMAIL,
                 sheet.getRow(16).getCell(2).getHyperlink().getType());
-        assertEquals(null,
-                sheet.getRow(16).getCell(2).getHyperlink().getLabel());
+        assertNull(sheet.getRow(16).getCell(2).getHyperlink().getLabel());
         assertEquals("mailto:dev@poi.apache.org?subject=XSSF%20Hyperlinks",
                 sheet.getRow(16).getCell(2).getHyperlink().getAddress());
     }
 
     @Test
-    public void test52716() {
-        XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("52716.xlsx");
-        XSSFSheet sh1 = wb1.getSheetAt(0);
-
-        XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
-        XSSFSheet sh2 = wb2.getSheetAt(0);
-
-        assertEquals(sh1.getNumberOfComments(), sh2.getNumberOfComments());
-        XSSFHyperlink l1 = sh1.getHyperlink(0, 1);
-        assertEquals(HyperlinkType.DOCUMENT, l1.getType());
-        assertEquals("B1", l1.getCellRef());
-        assertEquals("Sort on Titel", l1.getTooltip());
-
-        XSSFHyperlink l2 = sh2.getHyperlink(0, 1);
-        assertEquals(l1.getTooltip(), l2.getTooltip());
-        assertEquals(HyperlinkType.DOCUMENT, l2.getType());
-        assertEquals("B1", l2.getCellRef());
+    public void test52716() throws IOException {
+        try (XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("52716.xlsx")) {
+            XSSFSheet sh1 = wb1.getSheetAt(0);
+
+            XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
+            XSSFSheet sh2 = wb2.getSheetAt(0);
+
+            assertEquals(sh1.getNumberOfComments(), sh2.getNumberOfComments());
+            XSSFHyperlink l1 = sh1.getHyperlink(0, 1);
+            assertEquals(HyperlinkType.DOCUMENT, l1.getType());
+            assertEquals("B1", l1.getCellRef());
+            assertEquals("Sort on Titel", l1.getTooltip());
+
+            XSSFHyperlink l2 = sh2.getHyperlink(0, 1);
+            assertEquals(l1.getTooltip(), l2.getTooltip());
+            assertEquals(HyperlinkType.DOCUMENT, l2.getType());
+            assertEquals("B1", l2.getCellRef());
+        }
     }
 
     @Test
-    public void test53734() {
-        XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("53734.xlsx");
-        XSSFHyperlink link = wb.getSheetAt(0).getRow(0).getCell(0).getHyperlink();
-        assertEquals("javascript:///", link.getAddress());
-
-        wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
-        link = wb.getSheetAt(0).getRow(0).getCell(0).getHyperlink();
-        assertEquals("javascript:///", link.getAddress());
+    public void test53734() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("53734.xlsx")) {
+            Hyperlink link = wb.getSheetAt(0).getRow(0).getCell(0).getHyperlink();
+            assertEquals("javascript:///", link.getAddress());
+
+            try (XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb)) {
+                link = wb2.getSheetAt(0).getRow(0).getCell(0).getHyperlink();
+                assertEquals("javascript:///", link.getAddress());
+            }
+        }
     }
 
     @Test
-    public void test53282() {
-        XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("53282.xlsx");
-        XSSFHyperlink link = wb.getSheetAt(0).getRow(0).getCell(14).getHyperlink();
-        assertEquals("mailto:nobody@nowhere.uk%C2%A0", link.getAddress());
-
-        wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
-        link = wb.getSheetAt(0).getRow(0).getCell(14).getHyperlink();
-        assertEquals("mailto:nobody@nowhere.uk%C2%A0", link.getAddress());
+    public void test53282() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("53282.xlsx")) {
+            Hyperlink link = wb.getSheetAt(0).getRow(0).getCell(14).getHyperlink();
+            assertEquals("mailto:nobody@nowhere.uk%C2%A0", link.getAddress());
+
+            try (XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb)) {
+                link = wb2.getSheetAt(0).getRow(0).getCell(14).getHyperlink();
+                assertEquals("mailto:nobody@nowhere.uk%C2%A0", link.getAddress());
+            }
+        }
     }
     
     @Override

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFShape.java?rev=1865208&r1=1865207&r2=1865208&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFShape.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFShape.java Thu Aug 15 07:54:58 2019
@@ -20,7 +20,7 @@ package org.apache.poi.xssf.usermodel;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import java.util.Iterator;
+import java.io.IOException;
 import java.util.List;
 
 import org.apache.poi.xssf.XSSFTestDataSamples;
@@ -32,13 +32,17 @@ import org.junit.Test;
 public final class TestXSSFShape {
 
     @Test
-    public void test58325_one() {
-        check58325(XSSFTestDataSamples.openSampleWorkbook("58325_lt.xlsx"), 1);
+    public void test58325_one() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("58325_lt.xlsx")) {
+            check58325(wb, 1);
+        }
     }
 
     @Test
-    public void test58325_three() {
-        check58325(XSSFTestDataSamples.openSampleWorkbook("58325_db.xlsx"), 3);
+    public void test58325_three() throws IOException {
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("58325_db.xlsx")) {
+            check58325(wb, 3);
+        }
     }
 
     private void check58325(XSSFWorkbook wb, int expectedShapes) {
@@ -46,21 +50,19 @@ public final class TestXSSFShape {
         assertNotNull(sheet);
 
         StringBuilder str = new StringBuilder();
-        str.append("sheet " + sheet.getSheetName() + " - ");
+        str.append("sheet ").append(sheet.getSheetName()).append(" - ");
 
         XSSFDrawing drawing = sheet.getDrawingPatriarch();
         //drawing = ((XSSFSheet)sheet).createDrawingPatriarch();
 
         List<XSSFShape> shapes = drawing.getShapes();
-        str.append("drawing.getShapes().size() = " + shapes.size());
-        Iterator<XSSFShape> it = shapes.iterator();
-        while(it.hasNext()) {           
-            XSSFShape shape = it.next();
-            str.append(", " + shape);
-            str.append(", Col1:"+((XSSFClientAnchor)shape.getAnchor()).getCol1());
-            str.append(", Col2:"+((XSSFClientAnchor)shape.getAnchor()).getCol2());
-            str.append(", Row1:"+((XSSFClientAnchor)shape.getAnchor()).getRow1());
-            str.append(", Row2:"+((XSSFClientAnchor)shape.getAnchor()).getRow2());
+        str.append("drawing.getShapes().size() = ").append(shapes.size());
+        for (XSSFShape shape : shapes) {
+            str.append(", ").append(shape);
+            str.append(", Col1:").append(((XSSFClientAnchor) shape.getAnchor()).getCol1());
+            str.append(", Col2:").append(((XSSFClientAnchor) shape.getAnchor()).getCol2());
+            str.append(", Row1:").append(((XSSFClientAnchor) shape.getAnchor()).getRow1());
+            str.append(", Row2:").append(((XSSFClientAnchor) shape.getAnchor()).getRow2());
         }
         
         assertEquals("Having shapes: " + str, 

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetRowGrouping.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetRowGrouping.java?rev=1865208&r1=1865207&r2=1865208&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetRowGrouping.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetRowGrouping.java Thu Aug 15 07:54:58 2019
@@ -34,7 +34,7 @@ public final class TestXSSFSheetRowGroup
 
     //private int o_groupsNumber = 0;
 
-    public void test55640() throws IOException {
+    public void test55640() {
         //long startTime = System.currentTimeMillis();
         Workbook wb = new XSSFWorkbook();
         fillData(wb);
@@ -78,7 +78,7 @@ public final class TestXSSFSheetRowGroup
         return Math.random() > 0.5d;
     }
 
-    private void writeToFile(Workbook p_wb) throws IOException {
+    private void writeToFile(Workbook p_wb) {
 //        FileOutputStream fileOut = new FileOutputStream("/tmp/55640.xlsx");
 //        try {
 //            p_wb.write(fileOut);
@@ -88,7 +88,7 @@ public final class TestXSSFSheetRowGroup
         assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(p_wb));
     }
 
-    public void test55640reduce1() throws IOException {
+    public void test55640reduce1() {
         Workbook wb = new XSSFWorkbook();
         Sheet sheet = wb.createSheet("sheet123");
         sheet.setRowSumsBelow(false);
@@ -117,7 +117,7 @@ public final class TestXSSFSheetRowGroup
     }
 
 
-    public void test55640_VerifyCases() throws IOException {
+    public void test55640_VerifyCases() {
         // NOTE: This is currently based on current behavior of POI, somehow
         // what POI returns in the calls to collapsed/hidden is not fully matching 
         // the examples in the spec or I did not fully understand how POI stores the data internally...
@@ -210,7 +210,7 @@ public final class TestXSSFSheetRowGroup
     
    
     private void verifyGroupCollapsed(boolean level1, boolean level2, boolean level3, 
-            Boolean[] collapsed, boolean[] hidden, int[] outlineLevel) throws IOException {
+            Boolean[] collapsed, boolean[] hidden, int[] outlineLevel) {
         Workbook wb = new XSSFWorkbook();
         Sheet sheet = wb.createSheet("sheet123");
 
@@ -282,7 +282,7 @@ public final class TestXSSFSheetRowGroup
     }
 
     private void verifyGroupCollapsedSpec(boolean level1, boolean level2, boolean level3, 
-            Boolean[] collapsed, boolean[] hidden, int[] outlineLevel) throws IOException {
+            Boolean[] collapsed, boolean[] hidden, int[] outlineLevel) {
         Workbook wb = new XSSFWorkbook();
         Sheet sheet = wb.createSheet("sheet123");
 
@@ -301,7 +301,7 @@ public final class TestXSSFSheetRowGroup
         checkWorkbookGrouping(wb, collapsed, hidden, outlineLevel);
     }
 
-    private void checkWorkbookGrouping(Workbook wb, Boolean[] collapsed, boolean[] hidden, int[] outlineLevel) throws IOException {
+    private void checkWorkbookGrouping(Workbook wb, Boolean[] collapsed, boolean[] hidden, int[] outlineLevel) {
         printWorkbook(wb);
         Sheet sheet = wb.getSheetAt(0);
         
@@ -327,7 +327,7 @@ public final class TestXSSFSheetRowGroup
     }
 
  
-    public void test55640working() throws IOException {
+    public void test55640working() {
         Workbook wb = new XSSFWorkbook();
         Sheet sheet = wb.createSheet("sheet123");
 
@@ -366,50 +366,51 @@ public final class TestXSSFSheetRowGroup
     }
     
     public void testGroupingTest() throws IOException {
-        XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("GroupTest.xlsx");       
-        
-        assertEquals(31, wb.getSheetAt(0).getLastRowNum());
-        
-        // NOTE: This is currently based on current behavior of POI, somehow
-        // what POI returns in the calls to collapsed/hidden is not fully matching 
-        // the examples in the spec or I did not fully understand how POI stores the data internally...
-        checkWorkbookGrouping(wb, 
-                new Boolean [] {
-                    // 0-4
-                    false, false, false, false, false, null, null, 
-                    // 7-11
-                    false, false, true, true, true, null, null, 
-                    // 14-18
-                    false, false, true, false, false, null,
-                    // 20-24
-                    false, false, true, true, false, null, null, 
-                    // 27-31
-                    false, false, false, true, false }, 
-                new boolean[] { 
-                    // 0-4
-                    false, false, false, false, false, false, false,  
-                    // 7-11
-                    true,  true, true, true, false, false, false, 
-                    // 14-18
-                    true, true, false, false, false, false,  
-                    // 20-24
-                    true, true, true, false, false, false, false, 
-                    // 27-31
-                    true, true, true, true, false },
-                // outlineLevel
-                new int[] { 
-                    // 0-4
-                    3, 3, 2, 1, 0, 0, 0,
-                    // 7-11
-                    3, 3, 2, 1, 0, 0, 0,
-                    // 14-18
-                    3, 3, 2, 1, 0, 0,
-                    // 20-24
-                    3, 3, 2, 1, 0, 0, 0, 
-                    // 27-31
-                    3, 3, 2, 1, 0,
-                }
-                );
+        try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("GroupTest.xlsx")) {
+
+            assertEquals(31, wb.getSheetAt(0).getLastRowNum());
+
+            // NOTE: This is currently based on current behavior of POI, somehow
+            // what POI returns in the calls to collapsed/hidden is not fully matching
+            // the examples in the spec or I did not fully understand how POI stores the data internally...
+            checkWorkbookGrouping(wb,
+                    new Boolean[]{
+                            // 0-4
+                            false, false, false, false, false, null, null,
+                            // 7-11
+                            false, false, true, true, true, null, null,
+                            // 14-18
+                            false, false, true, false, false, null,
+                            // 20-24
+                            false, false, true, true, false, null, null,
+                            // 27-31
+                            false, false, false, true, false},
+                    new boolean[]{
+                            // 0-4
+                            false, false, false, false, false, false, false,
+                            // 7-11
+                            true, true, true, true, false, false, false,
+                            // 14-18
+                            true, true, false, false, false, false,
+                            // 20-24
+                            true, true, true, false, false, false, false,
+                            // 27-31
+                            true, true, true, true, false},
+                    // outlineLevel
+                    new int[]{
+                            // 0-4
+                            3, 3, 2, 1, 0, 0, 0,
+                            // 7-11
+                            3, 3, 2, 1, 0, 0, 0,
+                            // 14-18
+                            3, 3, 2, 1, 0, 0,
+                            // 20-24
+                            3, 3, 2, 1, 0, 0, 0,
+                            // 27-31
+                            3, 3, 2, 1, 0,
+                    }
+            );
+        }
         /*
 Row: 0: Level: 3 Collapsed: false Hidden: false
 Row: 1: Level: 3 Collapsed: false Hidden: false



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org