git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1578518 13f79535-47bb-0310-9956-ffa450edef68tags/REL_3_11_BETA1
@@ -295,10 +295,15 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable<X | |||
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()); | |||
} | |||
@@ -1440,4 +1440,19 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { | |||
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")); | |||
} | |||
} |