You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2023/07/03 20:54:56 UTC

svn commit: r1910759 - in /poi/trunk: poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java test-data/spreadsheet/bug62181.xlsx

Author: fanningpj
Date: Mon Jul  3 20:54:56 2023
New Revision: 1910759

URL: http://svn.apache.org/viewvc?rev=1910759&view=rev
Log:
[bug-62181] try to handle file where shared string loading is happening twice

Added:
    poi/trunk/test-data/spreadsheet/bug62181.xlsx   (with props)
Modified:
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=1910759&r1=1910758&r2=1910759&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Mon Jul  3 20:54:56 2023
@@ -412,7 +412,14 @@ public class XSSFWorkbook extends POIXML
                 if (packageReadOnly) {
                     sharedStringSource = new SharedStringsTable();
                 } else {
-                    sharedStringSource = (SharedStringsTable)createRelationship(XSSFRelation.SHARED_STRINGS, this.xssfFactory);
+                    List<PackagePart> matchingParts = getPackagePart().getPackage()
+                            .getPartsByContentType(XSSFRelation.SHARED_STRINGS.getContentType());
+                    if (matchingParts.isEmpty()) {
+                        sharedStringSource = (SharedStringsTable)
+                                createRelationship(XSSFRelation.SHARED_STRINGS, this.xssfFactory);
+                    } else {
+                        sharedStringSource = new SharedStringsTable(matchingParts.get(0));
+                    }
                 }
             }
 

Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java?rev=1910759&r1=1910758&r2=1910759&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java Mon Jul  3 20:54:56 2023
@@ -110,6 +110,7 @@ import org.apache.poi.xssf.XSSFITestData
 import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.xssf.eventusermodel.XSSFReader;
 import org.apache.poi.xssf.model.CalculationChain;
+import org.apache.poi.xssf.model.SharedStringsTable;
 import org.apache.poi.xssf.model.StylesTable;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill;
@@ -3854,6 +3855,15 @@ public final class TestXSSFBugs extends
         }
     }
 
+    @Test
+    void testBug62181() throws Exception {
+        try (XSSFWorkbook wb = openSampleWorkbook("bug62181.xlsx")) {
+            SharedStringsTable sst = wb.getSharedStringSource();
+            assertNotNull(sst);
+            assertEquals(0, sst.getCount());
+        }
+    }
+
     private static void readByCommonsCompress(File temp_excel_poi) throws IOException {
         /* read by commons-compress*/
         try (ZipFile zipFile = new ZipFile(temp_excel_poi)) {

Added: poi/trunk/test-data/spreadsheet/bug62181.xlsx
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/bug62181.xlsx?rev=1910759&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/spreadsheet/bug62181.xlsx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Mon Jul  3 20:54:56 2023
@@ -0,0 +1 @@
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org