From 355810fb9fcec2f12842a7fda1e7339af0732336 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Thu, 17 Dec 2015 15:05:06 +0000 Subject: [PATCH] Unit test for non-reproducable #58747 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1720588 13f79535-47bb-0310-9956-ffa450edef68 --- .../xssf/eventusermodel/TestXSSFReader.java | 19 ++++++++++++++++++ test-data/spreadsheet/58747.xlsx | Bin 0 -> 8552 bytes 2 files changed, 19 insertions(+) create mode 100644 test-data/spreadsheet/58747.xlsx diff --git a/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java b/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java index 85613d3e4..b964ced1d 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java @@ -27,6 +27,7 @@ import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.XSSFTestDataSamples; import org.apache.poi.xssf.model.CommentsTable; +import org.apache.poi.xssf.model.StylesTable; import org.apache.poi.xssf.usermodel.XSSFRichTextString; import org.apache.poi.xssf.usermodel.XSSFShape; import org.apache.poi.xssf.usermodel.XSSFSimpleShape; @@ -196,4 +197,22 @@ public final class TestXSSFReader extends TestCase { assertTrue(text.indexOf("Line 3") > -1); } + + /** + * NPE from XSSFReader$SheetIterator. on XLSX files generated by + * the openpyxl library + */ + public void test58747() throws Exception { + OPCPackage pkg = XSSFTestDataSamples.openSamplePackage("58747.xlsx"); + ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(pkg); + XSSFReader reader = new XSSFReader(pkg); + StylesTable styles = reader.getStylesTable(); + + XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) reader.getSheetsData(); + assertEquals(true, iter.hasNext()); + iter.next(); + + assertEquals(false, iter.hasNext()); + assertEquals("Orders", iter.getSheetName()); + } } diff --git a/test-data/spreadsheet/58747.xlsx b/test-data/spreadsheet/58747.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2bfec8a5547d496686ce990671c7a0041f66e970 GIT binary patch literal 8552 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 Qu^aaBgH@Lk6u*A`AIw+J+5i9m literal 0 HcmV?d00001