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 2022/12/12 18:43:44 UTC

svn commit: r1905940 - in /poi/trunk: poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestReadOnlySharedStringsTable.java test-data/spreadsheet/MalformedSSTCount.xlsx

Author: fanningpj
Date: Mon Dec 12 18:43:44 2022
New Revision: 1905940

URL: http://svn.apache.org/viewvc?rev=1905940&view=rev
Log:
untidy hack for shared string counts that are higher than Integer.MAX_VALUE

Added:
    poi/trunk/test-data/spreadsheet/MalformedSSTCount.xlsx   (with props)
Modified:
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestReadOnlySharedStringsTable.java

Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestReadOnlySharedStringsTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestReadOnlySharedStringsTable.java?rev=1905940&r1=1905939&r2=1905940&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestReadOnlySharedStringsTable.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestReadOnlySharedStringsTable.java Mon Dec 12 18:43:44 2022
@@ -69,11 +69,35 @@ public final class TestReadOnlySharedStr
         }
     }
 
+    @Test
+    void testParseMalformedCountFile() throws Exception {
+        try (OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("MalformedSSTCount.xlsx"))) {
+            List<PackagePart> parts = pkg.getPartsByName(Pattern.compile("/xl/sharedStrings.xml"));
+            assertEquals(1, parts.size());
+
+            SharedStringsTable stbl = new SharedStringsTable(parts.get(0));
+            ReadOnlySharedStringsTable rtbl = new ReadOnlySharedStringsTable(parts.get(0));
+            ReadOnlySharedStringsTable rtbl2;
+            try (InputStream stream = parts.get(0).getInputStream()) {
+                rtbl2 = new ReadOnlySharedStringsTable(stream);
+            }
+
+            assertEquals(stbl.getCount(), rtbl.getCount());
+            assertEquals(stbl.getUniqueCount(), rtbl.getUniqueCount());
+            assertEquals(stbl.getUniqueCount(), rtbl2.getUniqueCount());
+            for (int i = 0; i < stbl.getUniqueCount(); i++) {
+                RichTextString i1 = stbl.getItemAt(i);
+                assertEquals(i1.getString(), rtbl.getItemAt(i).getString());
+                assertEquals(i1.getString(), rtbl2.getItemAt(i).getString());
+            }
+        }
+    }
+
     //51519
     @Test
     void testPhoneticRuns() throws Exception {
         try (OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("51519.xlsx"))) {
-            List < PackagePart > parts = pkg.getPartsByName(Pattern.compile("/xl/sharedStrings.xml"));
+            List<PackagePart> parts = pkg.getPartsByName(Pattern.compile("/xl/sharedStrings.xml"));
             assertEquals(1, parts.size());
 
             ReadOnlySharedStringsTable rtbl = new ReadOnlySharedStringsTable(parts.get(0), true);
@@ -83,7 +107,7 @@ public final class TestReadOnlySharedStr
             assertEquals("\u65E5\u672C\u30AA\u30E9\u30AF\u30EB \u30CB\u30DB\u30F3", rtbl.getItemAt(3).getString());
 
             //now do not include phonetic runs
-            rtbl = new ReadOnlySharedStringsTable(parts.get(0),false);
+            rtbl = new ReadOnlySharedStringsTable(parts.get(0), false);
             assertEquals(49, rtbl.getUniqueCount());
 
             assertEquals("\u30B3\u30E1\u30F3\u30C8", rtbl.getItemAt(0).getString());

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

Propchange: poi/trunk/test-data/spreadsheet/MalformedSSTCount.xlsx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Mon Dec 12 18:43:44 2022
@@ -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