You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2021/04/26 15:12:33 UTC

svn commit: r1889205 - in /poi/trunk: poi-integration/src/test/java/org/apache/poi/stress/ poi/src/main/java/org/apache/poi/hssf/extractor/ poi/src/test/java/org/apache/poi/hssf/extractor/ test-data/spreadsheet/

Author: centic
Date: Mon Apr 26 15:12:32 2021
New Revision: 1889205

URL: http://svn.apache.org/viewvc?rev=1889205&view=rev
Log:
Do not return null for POITextExtractor.getMetadataTextExtractor() for old Excel files

To adhere to the JavaDoc of the POITextExtractor interface which does not document a
possible null return.

Modified:
    poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java
    poi/trunk/test-data/spreadsheet/stress.xls

Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java?rev=1889205&r1=1889204&r2=1889205&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java Mon Apr 26 15:12:32 2021
@@ -107,7 +107,7 @@ class HSSFFileHandler extends Spreadshee
 	// a test-case to test this locally without executing the full TestAllFiles
 	@Test
 	void test() throws Exception {
-        File file = new File("test-data/spreadsheet/49219.xls");
+        File file = new File("../test-data/spreadsheet/59074.xls");
 
 		try (InputStream stream = new FileInputStream(file)) {
 			handleFile(stream, file.getPath());
@@ -122,6 +122,6 @@ class HSSFFileHandler extends Spreadshee
     @Test
 	@SuppressWarnings("java:S2699")
     void testExtractor() throws Exception {
-        handleExtracting(new File("test-data/spreadsheet/BOOK_in_capitals.xls"));
+        handleExtracting(new File("../test-data/spreadsheet/59074.xls"));
     }
 }
\ No newline at end of file

Modified: poi/trunk/poi/src/main/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java?rev=1889205&r1=1889204&r2=1889205&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java Mon Apr 26 15:12:32 2021
@@ -316,7 +316,38 @@ public class OldExcelExtractor implement
 
     @Override
     public POITextExtractor getMetadataTextExtractor() {
-        return null;
+		return new POITextExtractor() {
+
+			@Override
+			public String getText() {
+				return "";
+			}
+
+			@Override
+			public POITextExtractor getMetadataTextExtractor() {
+				throw new IllegalStateException("You already have the Metadata Text Extractor, not recursing!");
+			}
+
+			@Override
+			public void setCloseFilesystem(boolean doCloseFilesystem) {
+
+			}
+
+			@Override
+			public boolean isCloseFilesystem() {
+				return toClose != null;
+			}
+
+			@Override
+			public Closeable getFilesystem() {
+				return toClose;
+			}
+
+			@Override
+			public Object getDocument() {
+				return ris;
+			}
+		};
     }
 
     @Override

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java?rev=1889205&r1=1889204&r2=1889205&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java Mon Apr 26 15:12:32 2021
@@ -35,6 +35,7 @@ import java.security.Permission;
 import org.apache.poi.EmptyFileException;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.POIDataSamples;
+import org.apache.poi.extractor.POITextExtractor;
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.poifs.filesystem.OfficeXmlFileException;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
@@ -378,4 +379,24 @@ final class TestOldExcelExtractor {
             this.status = status;
         }
     }
+
+	@Test
+	void testMetaData() throws IOException {
+		try (OldExcelExtractor extractor = createExtractor("testEXCEL_3.xls")) {
+			POITextExtractor metaData = extractor.getMetadataTextExtractor();
+			assertNotNull(metaData);
+
+			assertThrows(IllegalStateException.class, metaData::getMetadataTextExtractor);
+			assertEquals("", metaData.getText());
+			assertNotNull(metaData.getDocument());
+			assertTrue(metaData.isCloseFilesystem());
+			assertNotNull(metaData.getFilesystem());
+
+			// the setter is a NOP
+			metaData.setCloseFilesystem(false);
+			assertTrue(metaData.isCloseFilesystem());
+
+			metaData.close();
+		}
+	}
 }

Modified: poi/trunk/test-data/spreadsheet/stress.xls
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/spreadsheet/stress.xls?rev=1889205&r1=1889204&r2=1889205&view=diff
==============================================================================
Binary files - no diff available.



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