You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2014/03/17 20:02:22 UTC

svn commit: r1578518 - in /poi/trunk: src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java test-data/spreadsheet/56278.xlsx

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: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org