From e7dbb2aa43d850b09bee9e04eceaf685f1fec908 Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Sun, 20 Sep 2015 12:02:40 +0000 Subject: [PATCH] close resources in junit tests git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1704124 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xssf/streaming/TestSXSSFCell.java | 2 + .../poi/xssf/usermodel/TestXSSFBugs.java | 6 +- .../poi/xssf/usermodel/TestXSSFCell.java | 91 +- .../apache/poi/hssf/usermodel/TestBugs.java | 806 ++++++++++-------- .../ss/usermodel/BaseTestBugzillaIssues.java | 423 ++++----- .../apache/poi/ss/usermodel/BaseTestCell.java | 158 ++-- 6 files changed, 809 insertions(+), 677 deletions(-) diff --git a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java index 9daf0ccb1a..f3181fd5b3 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFCell.java @@ -76,6 +76,8 @@ public class TestSXSSFCell extends BaseTestXCell { String t = c.getAttributeText(new QName("http://www.w3.org/XML/1998/namespace", "space")); c.dispose(); assertEquals("expected xml:spaces=\"preserve\" \"" + str + "\"", "preserve", t); + xwb.close(); + swb.close(); } } } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java index c7a5486cc8..326f8b1870 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java @@ -114,7 +114,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { * open resulting file in Excel to check results! */ @Test - public void bug15375_2() { + public void bug15375_2() throws Exception { bug15375(1000); } @@ -2786,7 +2786,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { } @Test - public void test55406() { + public void test55406() throws Exception { Workbook wb = XSSFTestDataSamples.openSampleWorkbook("55406_Conditional_formatting_sample.xlsx"); Sheet sheet = wb.getSheetAt(0); Cell cellA1 = sheet.getRow(0).getCell(0); @@ -2809,5 +2809,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { assertEquals(64, cond.getConditionalFormattingAt(1).getRule(0).getPatternFormatting().getFillForegroundColor()); assertEquals("ISEVEN(ROW())", cond.getConditionalFormattingAt(1).getRule(0).getFormula1()); assertNull(((XSSFColor)cond.getConditionalFormattingAt(1).getRule(0).getPatternFormatting().getFillForegroundColorColor()).getARGBHex()); + + wb.close(); } } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java index c8a237d51d..e1deb4d89f 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java @@ -57,23 +57,25 @@ public final class TestXSSFCell extends BaseTestXCell { * Shared String Table */ @Test - public void test47026_1() { - Workbook source = _testDataProvider.openSampleWorkbook("47026.xlsm"); - Sheet sheet = source.getSheetAt(0); + public void test47026_1() throws Exception { + Workbook wb = _testDataProvider.openSampleWorkbook("47026.xlsm"); + Sheet sheet = wb.getSheetAt(0); Row row = sheet.getRow(0); Cell cell = row.getCell(0); cell.setCellType(Cell.CELL_TYPE_STRING); cell.setCellValue("456"); + wb.close(); } @Test - public void test47026_2() { - Workbook source = _testDataProvider.openSampleWorkbook("47026.xlsm"); - Sheet sheet = source.getSheetAt(0); + public void test47026_2() throws Exception { + Workbook wb = _testDataProvider.openSampleWorkbook("47026.xlsm"); + Sheet sheet = wb.getSheetAt(0); Row row = sheet.getRow(0); Cell cell = row.getCell(0); cell.setCellFormula(null); cell.setCellValue("456"); + wb.close(); } /** @@ -84,7 +86,7 @@ public final class TestXSSFCell extends BaseTestXCell { * instead of using the shared string table. See bug 47206 */ @Test - public void testInlineString() { + public void testInlineString() throws Exception { XSSFWorkbook wb = (XSSFWorkbook)_testDataProvider.openSampleWorkbook("xlsx-jdbc.xlsx"); XSSFSheet sheet = wb.getSheetAt(0); XSSFRow row = sheet.getRow(1); @@ -103,13 +105,14 @@ public final class TestXSSFCell extends BaseTestXCell { assertEquals(STCellType.INT_INLINE_STR, cell_2.getCTCell().getT().intValue()); assertTrue(cell_2.getCTCell().isSetIs()); assertEquals("bar", row.getCell(2).getStringCellValue()); + wb.close(); } /** * Bug 47278 - xsi:nil attribute for tag caused Excel 2007 to fail to open workbook */ @Test - public void test47278() { + public void test47278() throws Exception { XSSFWorkbook wb = (XSSFWorkbook)_testDataProvider.createWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); @@ -129,6 +132,7 @@ public final class TestXSSFCell extends BaseTestXCell { cell_1.setCellValue((String)null); assertEquals(0, sst.getCount()); assertEquals(Cell.CELL_TYPE_BLANK, cell_1.getCellType()); + wb.close(); } @Test @@ -174,7 +178,7 @@ public final class TestXSSFCell extends BaseTestXCell { * Bug 47889: problems when calling XSSFCell.getStringCellValue() on a workbook created in Gnumeric */ @Test - public void test47889() { + public void test47889() throws Exception { XSSFWorkbook wb = (XSSFWorkbook)_testDataProvider.openSampleWorkbook("47889.xlsx"); XSSFSheet sh = wb.getSheetAt(0); @@ -197,12 +201,13 @@ public final class TestXSSFCell extends BaseTestXCell { //Gnumeric produces spreadsheets without styles //make sure we return null for that instead of throwing OutOfBounds assertEquals(null, cell.getCellStyle()); + wb.close(); } @Test - public void testMissingRAttribute() { - XSSFWorkbook wb = new XSSFWorkbook(); - XSSFSheet sheet = wb.createSheet(); + public void testMissingRAttribute() throws Exception { + XSSFWorkbook wb1 = new XSSFWorkbook(); + XSSFSheet sheet = wb1.createSheet(); XSSFRow row = sheet.createRow(0); XSSFCell a1 = row.createCell(0); a1.setCellValue("A1"); @@ -220,9 +225,12 @@ public final class TestXSSFCell extends BaseTestXCell { assertCellsWithMissingR(row); - XSSFWorkbook wbNew = (XSSFWorkbook)_testDataProvider.writeOutAndReadBack(wb); - row = wbNew.getSheetAt(0).getRow(0); + XSSFWorkbook wb2 = (XSSFWorkbook)_testDataProvider.writeOutAndReadBack(wb1); + row = wb2.getSheetAt(0).getRow(0); assertCellsWithMissingR(row); + + wb2.close(); + wb1.close(); } private void assertCellsWithMissingR(XSSFRow row){ @@ -252,7 +260,7 @@ public final class TestXSSFCell extends BaseTestXCell { } @Test - public void testMissingRAttributeBug54288() { + public void testMissingRAttributeBug54288() throws Exception { // workbook with cells missing the R attribute XSSFWorkbook wb = (XSSFWorkbook)_testDataProvider.openSampleWorkbook("54288.xlsx"); // same workbook re-saved in Excel 2010, the R attribute is updated for every cell with the right value. @@ -290,32 +298,34 @@ public final class TestXSSFCell extends BaseTestXCell { } } + wbRef.close(); + wb.close(); } @Test public void test56170() throws IOException { - final Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56170.xlsx"); - final XSSFSheet sheet = (XSSFSheet) wb.getSheetAt(0); + final Workbook wb1 = XSSFTestDataSamples.openSampleWorkbook("56170.xlsx"); + final XSSFSheet sheet = (XSSFSheet) wb1.getSheetAt(0); - Workbook wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1); Cell cell; // add some contents to table so that the table will need expansion Row row = sheet.getRow(0); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb3 = XSSFTestDataSamples.writeOutAndReadBack(wb2); cell = row.createCell(0); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb4 = XSSFTestDataSamples.writeOutAndReadBack(wb3); cell.setCellValue("demo1"); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb5 = XSSFTestDataSamples.writeOutAndReadBack(wb4); cell = row.createCell(1); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb6 = XSSFTestDataSamples.writeOutAndReadBack(wb5); cell.setCellValue("demo2"); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb7 = XSSFTestDataSamples.writeOutAndReadBack(wb6); cell = row.createCell(2); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb8 = XSSFTestDataSamples.writeOutAndReadBack(wb7); cell.setCellValue("demo3"); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb9 = XSSFTestDataSamples.writeOutAndReadBack(wb8); row = sheet.getRow(1); cell = row.createCell(0); @@ -325,7 +335,7 @@ public final class TestXSSFCell extends BaseTestXCell { cell = row.createCell(2); cell.setCellValue("demo3"); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); + Workbook wb10 = XSSFTestDataSamples.writeOutAndReadBack(wb9); // expand table XSSFTable table = sheet.getTables().get(0); @@ -333,12 +343,20 @@ public final class TestXSSFCell extends BaseTestXCell { final CellReference endRef = table.getEndCellReference(); table.getCTTable().setRef(new CellRangeAddress(startRef.getRow(), 1, startRef.getCol(), endRef.getCol()).formatAsString()); - wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb); - assertNotNull(wbRead); - - /*FileOutputStream stream = new FileOutputStream("c:\\temp\\output.xlsx"); - workbook.write(stream); - stream.close();*/ + Workbook wb11 = XSSFTestDataSamples.writeOutAndReadBack(wb10); + assertNotNull(wb11); + + wb11.close(); + wb10.close(); + wb9.close(); + wb8.close(); + wb7.close(); + wb6.close(); + wb5.close(); + wb4.close(); + wb3.close(); + wb2.close(); + wb1.close(); } @Test @@ -426,7 +444,7 @@ public final class TestXSSFCell extends BaseTestXCell { } @Test - public void testEncodingbeloAscii(){ + public void testEncodingbeloAscii() throws Exception { StringBuffer sb = new StringBuffer(); // test all possible characters for(int i = 0; i < Character.MAX_VALUE; i++) { @@ -467,6 +485,13 @@ public final class TestXSSFCell extends BaseTestXCell { assertEquals(cell.getStringCellValue(), sCell.getStringCellValue()); pos += SpreadsheetVersion.EXCEL97.getMaxTextLength(); + + swbBack.close(); + xwbBack.close(); + wbBack.close(); + swb.close(); + xwb.close(); + wb.close(); } } } diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java index 92661f8aee..3b753bc8a8 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java @@ -29,10 +29,8 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -76,7 +74,6 @@ import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.LocaleUtil; -import org.apache.poi.util.TempFile; import org.junit.Ignore; import org.junit.Test; @@ -86,9 +83,6 @@ import org.junit.Test; * * YK: If a bug can be tested in terms of common ss interfaces, * define the test in the base class {@link BaseTestBugzillaIssues} - * - * @author Avik Sengupta - * @author Yegor Kozlov */ public final class TestBugs extends BaseTestBugzillaIssues { @@ -104,67 +98,48 @@ public final class TestBugs extends BaseTestBugzillaIssues { return HSSFITestDataProvider.instance.writeOutAndReadBack(original); } - @SuppressWarnings("unused") - private static void writeTestOutputFileForViewing(HSSFWorkbook wb, String simpleFileName) { - if (true) { // set to false to output test files - return; - } - System.setProperty("poi.keep.tmp.files", "true"); - File file; - try { - file = TempFile.createTempFile(simpleFileName + "#", ".xls"); - OutputStream out = new FileOutputStream(file); - try { - wb.write(out); - } finally { - out.close(); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - if (!file.exists()) { - throw new RuntimeException("File was not written"); - } - System.out.println("Open file '" + file.getAbsolutePath() + "' in Excel"); - } - /** Test reading AND writing a complicated workbook *Test opening resulting sheet in excel*/ @Test - public void bug15228() { + public void bug15228() throws Exception { HSSFWorkbook wb = openSample("15228.xls"); HSSFSheet s = wb.getSheetAt(0); HSSFRow r = s.createRow(0); HSSFCell c = r.createCell(0); c.setCellValue(10); - writeTestOutputFileForViewing(wb, "test15228"); + writeOutAndReadBack(wb).close(); + wb.close(); } @Test - public void bug13796() { + public void bug13796() throws Exception { HSSFWorkbook wb = openSample("13796.xls"); HSSFSheet s = wb.getSheetAt(0); HSSFRow r = s.createRow(0); HSSFCell c = r.createCell(0); c.setCellValue(10); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** test reading of a formula with a name and a cell ref in one **/ @Test - public void bug14460() { + public void bug14460() throws Exception { HSSFWorkbook wb = openSample("14460.xls"); wb.getSheetAt(0); + wb.close(); } @Test - public void bug14330() { - HSSFWorkbook wb = openSample("14330-1.xls"); - wb.getSheetAt(0); + public void bug14330() throws Exception { + HSSFWorkbook wb1 = openSample("14330-1.xls"); + wb1.getSheetAt(0); + wb1.close(); - wb = openSample("14330-2.xls"); - wb.getSheetAt(0); + HSSFWorkbook wb2 = openSample("14330-2.xls"); + wb2.getSheetAt(0); + wb2.close(); } private static void setCellText(HSSFCell cell, String text) { @@ -174,7 +149,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { /** test rewriting a file with large number of unique strings *open resulting file in Excel to check results!*/ @Test - public void bug15375() { + public void bug15375() throws Exception { HSSFWorkbook wb = openSample("15375.xls"); HSSFSheet sheet = wb.getSheetAt(0); @@ -195,24 +170,26 @@ public final class TestBugs extends BaseTestBugzillaIssues { oCell = oRow.getCell(5); setCellText(oCell, "0.3"); - writeTestOutputFileForViewing(wb, "test15375"); + writeOutAndReadBack(wb).close(); + wb.close(); } /** * test writing a file with large number of unique strings, * open resulting file in Excel to check results! */ @Test - public void bug15375_2() { + public void bug15375_2() throws Exception { bug15375(6000); } /**Double byte strings*/ @Test - public void bug15556() { + public void bug15556() throws Exception { HSSFWorkbook wb = openSample("15556.xls"); HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row = sheet.getRow(45); assertNotNull("Read row fine!" , row); + wb.close(); } /**Double byte strings */ @@ -261,7 +238,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { } @Test - public void bug24215() { + public void bug24215() throws Exception { HSSFWorkbook wb = openSample("24215.xls"); for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets();sheetIndex++) { @@ -277,6 +254,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { } } } + wb.close(); } /**Tests read and write of Unicode strings in formula results @@ -284,7 +262,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { * The file contains THAI unicode characters. */ @Test - public void bugUnicodeStringFormulaRead() { + public void bugUnicodeStringFormulaRead() throws Exception { HSSFWorkbook w = openSample("25695.xls"); @@ -318,6 +296,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { confirmSameCellText(d1, d2); HSSFWorkbook rw = writeOutAndReadBack(w); + w.close(); HSSFCell ra1 = rw.getSheetAt(0).getRow(0).getCell(0); HSSFCell ra2 = rw.getSheetAt(0).getRow(0).getCell(1); @@ -337,6 +316,8 @@ public final class TestBugs extends BaseTestBugzillaIssues { confirmSameCellText(b1, rb2); confirmSameCellText(c1, rc2); confirmSameCellText(d1, rd2); + + rw.close(); } private static void confirmSameCellText(HSSFCell a, HSSFCell b) { @@ -367,7 +348,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { /**names and macros */ @Test - public void bug27852() { + public void bug27852() throws Exception { HSSFWorkbook wb = openSample("27852.xls"); for(int i = 0 ; i < wb.getNumberOfNames(); i++){ @@ -378,6 +359,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { } name.getRefersToFormula(); } + wb.close(); } @Test @@ -396,43 +378,47 @@ public final class TestBugs extends BaseTestBugzillaIssues { /** Error when reading then writing ArrayValues in NameRecord's*/ @Test - public void bug37630() { + public void bug37630() throws Exception { HSSFWorkbook wb = openSample("37630.xls"); writeOutAndReadBack(wb); + wb.close(); } /** * Bug 25183: org.apache.poi.hssf.usermodel.HSSFSheet.setPropertiesFromSheet */ @Test - public void bug25183() { + public void bug25183() throws Exception { HSSFWorkbook wb = openSample("25183.xls"); writeOutAndReadBack(wb); + wb.close(); } /** * Bug 26100: 128-character message in IF statement cell causes HSSFWorkbook open failure */ @Test - public void bug26100() { + public void bug26100() throws Exception { HSSFWorkbook wb = openSample("26100.xls"); writeOutAndReadBack(wb); + wb.close(); } /** * Bug 27933: Unable to use a template (xls) file containing a wmf graphic */ @Test - public void bug27933() { + public void bug27933() throws Exception { HSSFWorkbook wb = openSample("27933.xls"); writeOutAndReadBack(wb); + wb.close(); } /** * Bug 29206: NPE on HSSFSheet.getRow for blank rows */ @Test - public void bug29206() { + public void bug29206() throws Exception { //the first check with blank workbook HSSFWorkbook wb = openSample("Simple.xls"); HSSFSheet sheet = wb.createSheet(); @@ -442,22 +428,24 @@ public final class TestBugs extends BaseTestBugzillaIssues { row.getCell(0); } } + wb.close(); } /** * Bug 29675: POI 2.5 final corrupts output when starting workbook has a graphic */ @Test - public void bug29675() { + public void bug29675() throws Exception { HSSFWorkbook wb = openSample("29675.xls"); writeOutAndReadBack(wb); + wb.close(); } /** * Bug 29942: Importing Excel files that have been created by Open Office on Linux */ @Test - public void bug29942() { + public void bug29942() throws Exception { HSSFWorkbook wb = openSample("29942.xls"); HSSFSheet sheet = wb.getSheetAt(0); @@ -472,7 +460,8 @@ public final class TestBugs extends BaseTestBugzillaIssues { } assertEquals(85, count); //should read 85 rows - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** @@ -480,39 +469,44 @@ public final class TestBugs extends BaseTestBugzillaIssues { * Unable to construct record instance */ @Test - public void bug29982() { + public void bug29982() throws Exception { HSSFWorkbook wb = openSample("29982.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** * Bug 30540: HSSFSheet.setRowBreak throws NullPointerException */ @Test - public void bug30540() { + public void bug30540() throws Exception { HSSFWorkbook wb = openSample("30540.xls"); HSSFSheet s = wb.getSheetAt(0); s.setRowBreak(1); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + + wb.close(); } /** * Bug 31749: {Need help urgently}[This is critical] workbook.write() corrupts the file......? */ @Test - public void bug31749() { + public void bug31749() throws Exception { HSSFWorkbook wb = openSample("31749.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** * Bug 31979: {urgent help needed .....}poi library does not support form objects properly. */ @Test - public void bug31979() { + public void bug31979() throws Exception { HSSFWorkbook wb = openSample("31979.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** @@ -520,42 +514,47 @@ public final class TestBugs extends BaseTestBugzillaIssues { * when HSSFWorkbook is created from file */ @Test - public void bug35564() { + public void bug35564() throws Exception { HSSFWorkbook wb = openSample("35564.xls"); HSSFSheet sheet = wb.getSheetAt( 0 ); assertEquals(false, sheet.isGridsPrinted()); assertEquals(false, sheet.getProtect()); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + + wb.close(); } /** * Bug 35565: HSSFCell.java: NullPtrExc in getColumnBreaks() when HSSFWorkbook is created from file */ @Test - public void bug35565() { + public void bug35565() throws Exception { HSSFWorkbook wb = openSample("35565.xls"); HSSFSheet sheet = wb.getSheetAt( 0 ); assertNotNull(sheet); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + + wb.close(); } /** * Bug 37376: Cannot open the saved Excel file if checkbox controls exceed certain limit */ @Test - public void bug37376() { + public void bug37376() throws Exception { HSSFWorkbook wb = openSample("37376.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** * Bug 40285: CellIterator Skips First Column */ @Test - public void bug40285() { + public void bug40285() throws Exception { HSSFWorkbook wb = openSample("40285.xls"); HSSFSheet sheet = wb.getSheetAt( 0 ); @@ -569,6 +568,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { assertEquals(cellNum, cell.getColumnIndex()); } } + wb.close(); } /** @@ -582,10 +582,10 @@ public final class TestBugs extends BaseTestBugzillaIssues { * 4. Get a NullPointerException */ @Test - public void bug38266() { + public void bug38266() throws Exception { String[] files = {"Simple.xls", "SimpleMultiCell.xls", "duprich1.xls"}; - for (int i = 0; i < files.length; i++) { - HSSFWorkbook wb = openSample(files[i]); + for (String file : files) { + HSSFWorkbook wb = openSample(file); HSSFSheet sheet = wb.getSheetAt( 0 ); int[] breaks = sheet.getRowBreaks(); @@ -595,54 +595,59 @@ public final class TestBugs extends BaseTestBugzillaIssues { for (int j = 1; j <= 3; j++) { sheet.setRowBreak(j*20); } + wb.close(); } } @Test - public void bug40738() { + public void bug40738() throws Exception { HSSFWorkbook wb = openSample("SimpleWithAutofilter.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** * Bug 44200: Sheet not cloneable when Note added to excel cell */ @Test - public void bug44200() { + public void bug44200() throws Exception { HSSFWorkbook wb = openSample("44200.xls"); - wb.cloneSheet(0); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** * Bug 44201: Sheet not cloneable when validation added to excel cell */ @Test - public void bug44201() { + public void bug44201() throws Exception { HSSFWorkbook wb = openSample("44201.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** * Bug 37684 : Unhandled Continue Record Error */ @Test - public void bug37684 () { - HSSFWorkbook wb = openSample("37684-1.xls"); - writeOutAndReadBack(wb); - - wb = openSample("37684-2.xls"); - writeOutAndReadBack(wb); + public void bug37684() throws Exception { + HSSFWorkbook wb1 = openSample("37684-1.xls"); + writeOutAndReadBack(wb1).close(); + wb1.close(); + HSSFWorkbook wb2 = openSample("37684-2.xls"); + writeOutAndReadBack(wb2).close(); + wb2.close(); } /** * Bug 41139: Constructing HSSFWorkbook is failed,threw threw ArrayIndexOutOfBoundsException for creating UnknownRecord */ @Test - public void bug41139() { + public void bug41139() throws Exception { HSSFWorkbook wb = openSample("41139.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** @@ -650,11 +655,13 @@ public final class TestBugs extends BaseTestBugzillaIssues { * Unknown Ptg in Formula: 0x1a (26) */ @Test - public void bug41546() { - HSSFWorkbook wb = openSample("41546.xls"); - assertEquals(1, wb.getNumberOfSheets()); - wb = writeOutAndReadBack(wb); - assertEquals(1, wb.getNumberOfSheets()); + public void bug41546() throws Exception { + HSSFWorkbook wb1 = openSample("41546.xls"); + assertEquals(1, wb1.getNumberOfSheets()); + HSSFWorkbook wb2 = writeOutAndReadBack(wb1); + assertEquals(1, wb2.getNumberOfSheets()); + wb2.close(); + wb1.close(); } /** @@ -662,9 +669,10 @@ public final class TestBugs extends BaseTestBugzillaIssues { * when reading the BOFRecord */ @Test - public void bug42564() { + public void bug42564() throws Exception { HSSFWorkbook wb = openSample("ex42564-21435.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** @@ -673,9 +681,10 @@ public final class TestBugs extends BaseTestBugzillaIssues { * issue. */ @Test - public void bug42564Alt() { + public void bug42564Alt() throws Exception { HSSFWorkbook wb = openSample("ex42564-21503.xls"); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); + wb.close(); } /** @@ -683,11 +692,12 @@ public final class TestBugs extends BaseTestBugzillaIssues { * =CHOOSE(2,A2,A3,A4) */ @Test - public void bug42618() { - HSSFWorkbook wb = openSample("SimpleWithChoose.xls"); - wb = writeOutAndReadBack(wb); + public void bug42618() throws Exception { + HSSFWorkbook wb1 = openSample("SimpleWithChoose.xls"); + HSSFWorkbook wb2 = writeOutAndReadBack(wb1); + wb1.close(); // Check we detect the string properly too - HSSFSheet s = wb.getSheetAt(0); + HSSFSheet s = wb2.getSheetAt(0); // Textual value HSSFRow r1 = s.getRow(0); @@ -707,22 +717,19 @@ public final class TestBugs extends BaseTestBugzillaIssues { fail("identified bug 44306"); } } + wb2.close(); } /** * Something up with the FileSharingRecord */ @Test - public void bug43251() { - + public void bug43251() throws Exception { // Used to blow up with an IllegalArgumentException // when creating a FileSharingRecord - try { - HSSFWorkbook wb = openSample("43251.xls"); - assertEquals(1, wb.getNumberOfSheets()); - } catch (IllegalArgumentException e) { - fail("identified bug 43251"); - } + HSSFWorkbook wb = openSample("43251.xls"); + assertEquals(1, wb.getNumberOfSheets()); + wb.close(); } /** @@ -730,18 +737,12 @@ public final class TestBugs extends BaseTestBugzillaIssues { * StyleRecords, which is against the spec */ @Test - public void bug44471() { - + public void bug44471() throws Exception { // Used to blow up with an ArrayIndexOutOfBounds // when creating a StyleRecord - HSSFWorkbook wb; - //try { - wb = openSample("OddStyleRecord.xls"); - //} catch (ArrayIndexOutOfBoundsException e) { - // throw new AssertionFailedError("Identified bug 44471"); - //} - + HSSFWorkbook wb = openSample("OddStyleRecord.xls"); assertEquals(1, wb.getNumberOfSheets()); + wb.close(); } /** @@ -749,19 +750,20 @@ public final class TestBugs extends BaseTestBugzillaIssues { * grief on the FileSharingRecord */ @Test - public void bug44536() { - + public void bug44536() throws Exception { // Used to blow up with an IllegalArgumentException // when creating a FileSharingRecord - HSSFWorkbook wb = openSample("ReadOnlyRecommended.xls"); + HSSFWorkbook wb1 = openSample("ReadOnlyRecommended.xls"); // Check read only advised - assertEquals(3, wb.getNumberOfSheets()); - assertTrue(wb.isWriteProtected()); + assertEquals(3, wb1.getNumberOfSheets()); + assertTrue(wb1.isWriteProtected()); + wb1.close(); // But also check that another wb isn't - wb = openSample("SimpleWithChoose.xls"); - assertFalse(wb.isWriteProtected()); + HSSFWorkbook wb2 = openSample("SimpleWithChoose.xls"); + assertFalse(wb2.isWriteProtected()); + wb2.close(); } /** @@ -769,20 +771,14 @@ public final class TestBugs extends BaseTestBugzillaIssues { * probably due to dropdowns */ @Test - public void bug44593() { - + public void bug44593() throws Exception { // Used to blow up with an IllegalArgumentException // when creating a DVRecord // Now won't, but no idea if this means we have // rubbish in the DVRecord or not... - HSSFWorkbook wb; - //try { - wb = openSample("44593.xls"); - //} catch (IllegalArgumentException e) { - // throw new AssertionFailedError("Identified bug 44593"); - //} - + HSSFWorkbook wb = openSample("44593.xls"); assertEquals(2, wb.getNumberOfSheets()); + wb.close(); } /** @@ -790,17 +786,11 @@ public final class TestBugs extends BaseTestBugzillaIssues { * length string, but that's now properly handled */ @Test - public void bug44643() { - + public void bug44643() throws Exception { // Used to blow up with an IllegalArgumentException - HSSFWorkbook wb; - //try { - wb = openSample("44643.xls"); - //} catch (IllegalArgumentException e) { - // throw new AssertionFailedError("identified bug 44643"); - //} - + HSSFWorkbook wb = openSample("44643.xls"); assertEquals(1, wb.getNumberOfSheets()); + wb.close(); } /** @@ -808,8 +798,7 @@ public final class TestBugs extends BaseTestBugzillaIssues { * iterator, but we can't replicate that */ @Test - public void bug44693() { - + public void bug44693() throws Exception { HSSFWorkbook wb = openSample("44693.xls"); HSSFSheet s = wb.getSheetAt(0); @@ -826,17 +815,19 @@ public final class TestBugs extends BaseTestBugzillaIssues { rowsSeen++; } assertEquals(713, rowsSeen); + wb.close(); } /** * Bug 28774: Excel will crash when opening xls-files with images. */ @Test - public void bug28774() { + public void bug28774() throws Exception { HSSFWorkbook wb = openSample("28774.xls"); assertTrue("no errors reading sample xls", true); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close();; assertTrue("no errors writing sample xls", true); + wb.close(); } /** @@ -844,11 +835,12 @@ public final class TestBugs extends BaseTestBugzillaIssues { * works just fine... */ @Test - public void bug44891() { + public void bug44891() throws Exception { HSSFWorkbook wb = openSample("44891.xls"); assertTrue("no errors reading sample xls", true); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); assertTrue("no errors writing sample xls", true); + wb.close(); } /** @@ -857,27 +849,30 @@ public final class TestBugs extends BaseTestBugzillaIssues { * Works fine with poi-3.1-beta1. */ @Test - public void bug44235() { + public void bug44235() throws Exception { HSSFWorkbook wb = openSample("44235.xls"); assertTrue("no errors reading sample xls", true); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); assertTrue("no errors writing sample xls", true); + wb.close(); } @Test - public void bug36947() { + public void bug36947() throws Exception { HSSFWorkbook wb = openSample("36947.xls"); assertTrue("no errors reading sample xls", true); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); assertTrue("no errors writing sample xls", true); + wb.close(); } @Test - public void bug39634() { + public void bug39634() throws Exception { HSSFWorkbook wb = openSample("39634.xls"); assertTrue("no errors reading sample xls", true); - writeOutAndReadBack(wb); + writeOutAndReadBack(wb).close(); assertTrue("no errors writing sample xls", true); + wb.close(); } /** @@ -885,8 +880,8 @@ public final class TestBugs extends BaseTestBugzillaIssues { * HSSFObjectData * @throws Exception */ - @Test - public void bug44840() { + @Test(expected=FileNotFoundException.class) + public void bug44840() throws Exception { HSSFWorkbook wb = openSample("WithCheckBoxes.xls"); // Take a look at the embedded objects @@ -913,11 +908,8 @@ public final class TestBugs extends BaseTestBugzillaIssues { try { obj.getDirectory(); - fail(); - } catch(FileNotFoundException e) { - // expected during successful test - } catch (IOException e) { - throw new RuntimeException(e); + } finally { + wb.close(); } } @@ -927,17 +919,17 @@ public final class TestBugs extends BaseTestBugzillaIssues { * used for printing stuff. */ @Test - public void bug30978() { - HSSFWorkbook wb = openSample("30978-alt.xls"); - assertEquals(1, wb.getNumberOfNames()); - assertEquals(3, wb.getNumberOfSheets()); + public void bug30978() throws Exception { + HSSFWorkbook wb1 = openSample("30978-alt.xls"); + assertEquals(1, wb1.getNumberOfNames()); + assertEquals(3, wb1.getNumberOfSheets()); // Check all names fit within range, and use // DeletedArea3DPtg - InternalWorkbook w = wb.getWorkbook(); + InternalWorkbook w = wb1.getWorkbook(); for(int i=0; i