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 2021/10/10 09:58:02 UTC

svn commit: r1894097 - in /poi/trunk: poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java poi/src/main/java/org/apache/poi/ss/usermodel/WorkbookFactory.java test-data/spreadsheet/workbook.xml

Author: fanningpj
Date: Sun Oct 10 09:58:02 2021
New Revision: 1894097

URL: http://svn.apache.org/viewvc?rev=1894097&view=rev
Log:
[bug-65452] fix issue where WorkbookFactory.create(File, ...) returns null if file type not recognised

Added:
    poi/trunk/test-data/spreadsheet/workbook.xml   (with props)
Modified:
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/WorkbookFactory.java

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=1894097&r1=1894096&r2=1894097&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 Sun Oct 10 09:58:02 2021
@@ -3623,4 +3623,25 @@ public final class TestXSSFBugs extends
             }
         }
     }
-}
+
+    @Test
+    void testBug65452() throws IOException {
+        File file = XSSFTestDataSamples.getSampleFile("workbook.xml");
+        try (FileInputStream fis = new FileInputStream(file)) {
+            try {
+                Workbook wb = WorkbookFactory.create(fis);
+                if (wb != null) wb.close();
+                fail("WorkbookFactory.create should have failed");
+            } catch (IOException ie) {
+                assertEquals("Can't open workbook - unsupported file type: XML", ie.getMessage());
+            }
+        }
+        try {
+            Workbook wb = WorkbookFactory.create(file);
+            if (wb != null) wb.close();
+            fail("WorkbookFactory.create should have failed");
+        } catch (IOException ie) {
+            assertEquals("Can't open workbook - unsupported file type: XML", ie.getMessage());
+        }
+    }
+}
\ No newline at end of file

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/WorkbookFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/WorkbookFactory.java?rev=1894097&r1=1894096&r2=1894097&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/WorkbookFactory.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/WorkbookFactory.java Sun Oct 10 09:58:02 2021
@@ -19,11 +19,7 @@ package org.apache.poi.ss.usermodel;
 import static org.apache.poi.extractor.ExtractorFactory.OOXML_PACKAGE;
 import static org.apache.poi.poifs.crypt.Decryptor.DEFAULT_POIFS_ENTRY;
 
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.ServiceLoader;
@@ -291,9 +287,9 @@ public final class WorkbookFactory {
                 ooxmlEnc = root.hasEntry(DEFAULT_POIFS_ENTRY) || root.hasEntry(OOXML_PACKAGE);
             }
             return wp(ooxmlEnc ? FileMagic.OOXML : fm, w -> w.create(file, password, readOnly));
+        } else {
+            throw new IOException("Can't open workbook - unsupported file type: "+fm);
         }
-
-        return null;
     }
 
 

Added: poi/trunk/test-data/spreadsheet/workbook.xml
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/workbook.xml?rev=1894097&view=auto
==============================================================================
--- poi/trunk/test-data/spreadsheet/workbook.xml (added)
+++ poi/trunk/test-data/spreadsheet/workbook.xml Sun Oct 10 09:58:02 2021
@@ -0,0 +1 @@
+<?xml version="1.0"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel"><TEST_REPORT><Author>EXAMPLE</Author></TEST_REPORT><Styles><Style ss:ID="Header"><Font ss:Bold="1"/><Interior ss:Color="#92D050" ss:Pattern="Solid"/><Alignment ss:Vertical="Center" ss:WrapText="1"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/></Borders></Style><Style ss:ID="Data"><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/></Bord
 ers></Style><Style ss:ID="Data1"><Alignment ss:Horizontal="Right"/><NumberFormat ss:Format="Standard"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/></Borders></Style></Styles><Worksheet ss:Name="Sheet1"><Table x:FullColumns="1" x:FullRows="1"><Column ss:Width="120"/><Column ss:Width="120"/><Column ss:Width="120"/><Row/><Row ss:AutoFitHeight="1"><Cell ss:StyleID="Header"><Data ss:Type="String">Konto</Data></Cell><Cell ss:StyleID="Header"><Data ss:Type="String">Zuordnung</Data></Cell><Cell ss:StyleID="Header"><Data ss:Type="String">Nummer</Data></Cell></Row><Row><Cell ss:StyleID="Data"/><Cell ss:StyleID="Data"/><Cell ss:StyleID="Data"/><Cell ss:StyleID="Data"/><Cell ss:StyleID="Data"/><Cell ss:StyleID="Data"/></Row><Row><Cell ss:StyleID="Data"><Data s
 s:Type="String">KONTO0001</Data></Cell><Cell ss:StyleID="Data"><Data ss:Type="String">123456789</Data></Cell><Cell ss:StyleID="Data"><Data ss:Type="String">PROJEKT 1</Data></Cell></Row><Row><Cell ss:StyleID="Data"><Data ss:Type="String">KONTO0001</Data></Cell><Cell ss:StyleID="Data"><Data ss:Type="String">123456789</Data></Cell><Cell ss:StyleID="Data"><Data ss:Type="String"/></Cell></Row></Table></Worksheet></Workbook>                                                                
\ No newline at end of file

Propchange: poi/trunk/test-data/spreadsheet/workbook.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: poi/trunk/test-data/spreadsheet/workbook.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml



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