From 1970d1156acbe980d74e157dd38cd2363297f951 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Fri, 1 Jul 2011 15:16:09 +0000 Subject: [PATCH] Add unit test that seems to show bug #51461 working just fine git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1141961 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hssf/usermodel/TestBugs.java | 18 ++++++++++++++++++ test-data/spreadsheet/51461.xls | Bin 0 -> 66048 bytes 2 files changed, 18 insertions(+) create mode 100644 test-data/spreadsheet/51461.xls diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java index 8341f465a..098244165 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java @@ -25,6 +25,8 @@ import org.apache.poi.hssf.model.InternalWorkbook; import org.apache.poi.hssf.record.*; import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate; import org.apache.poi.hssf.record.common.UnicodeString; +import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.formula.ptg.Area3DPtg; import org.apache.poi.ss.formula.ptg.DeletedArea3DPtg; import org.apache.poi.ss.formula.ptg.Ptg; @@ -2123,4 +2125,20 @@ if(1==2) { wb = writeOutAndReadBack(wb); assertEquals(1, wb.getNumberOfSheets()); } + + /** + * File with exactly 256 data blocks (+header block) + * shouldn't break on POIFS loading + */ + public void test51461() throws Exception { + byte[] data = HSSFITestDataProvider.instance.getTestDataFileContent("51461.xls"); + + HSSFWorkbook wbPOIFS = new HSSFWorkbook(new POIFSFileSystem( + new ByteArrayInputStream(data)).getRoot(), false); + HSSFWorkbook wbNPOIFS = new HSSFWorkbook(new NPOIFSFileSystem( + new ByteArrayInputStream(data)).getRoot(), false); + + assertEquals(2, wbPOIFS.getNumberOfSheets()); + assertEquals(2, wbNPOIFS.getNumberOfSheets()); + } } diff --git a/test-data/spreadsheet/51461.xls b/test-data/spreadsheet/51461.xls new file mode 100644 index 0000000000000000000000000000000000000000..0f6c1bdfbbeb34414aed6d64c8b7cb938d27c9e7 GIT binary patch literal 66048 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 literal 0 HcmV?d00001