Author: nick
Date: Mon Mar 17 19:02:21 2014
New Revision: 1578518
URL: http://svn.apache.org/r1578518
Log:
Fix bug #56278 - Support loading .xlsx files with no Styles Table
Added:
poi/trunk/test-data/spreadsheet/56278.xlsx (with props)
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=1578518&r1=1578517&r2=1578518&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
Mon Mar 17 19:02:21 2014
@@ -295,10 +295,15 @@ public class XSSFWorkbook extends POIXML
shIdMap.put(p.getPackageRelationship().getId(),
(XSSFSheet)p);
}
}
+
+ if (stylesSource == null) {
+ // Create Styles if it is missing
+ stylesSource =
(StylesTable)createRelationship(XSSFRelation.STYLES, XSSFFactory.getInstance());
+ }
stylesSource.setTheme(theme);
if(sharedStringSource == null) {
- //Create SST if it is missing
+ // Create SST if it is missing
sharedStringSource =
(SharedStringsTable)createRelationship(XSSFRelation.SHARED_STRINGS,
XSSFFactory.getInstance());
}
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1578518&r1=1578517&r2=1578518&view=diff
==============================================================================
---
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
(original)
+++
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
Mon Mar 17 19:02:21 2014
@@ -1440,4 +1440,19 @@ public final class TestXSSFBugs extends
assertEquals("#@_#", c.getStringCellValue());
assertEquals("http://invalid.uri", c.getHyperlink().getAddress());
}
+
+ /**
+ * Was giving NullPointerException
+ * at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead
+ * due to a lack of Styles Table
+ */
+ @Test
+ public void bug56278() throws Exception {
+ Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56278.xlsx");
+ assertEquals(0, wb.getSheetIndex("Market Rates"));
+
+ // Save and re-check
+ Workbook nwb = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ assertEquals(0, nwb.getSheetIndex("Market Rates"));
+ }
}
Added: poi/trunk/test-data/spreadsheet/56278.xlsx
URL:
http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/56278.xlsx?rev=1578518&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/test-data/spreadsheet/56278.xlsx
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]