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/14 09:28:26 UTC

svn commit: r1894224 - in /poi/trunk/poi-ooxml/src: main/java/org/apache/poi/openxml4j/opc/ZipPackage.java test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java

Author: fanningpj
Date: Thu Oct 14 09:28:26 2021
New Revision: 1894224

URL: http://svn.apache.org/viewvc?rev=1894224&view=rev
Log:
temp file package parts

Modified:
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java?rev=1894224&r1=1894223&r2=1894224&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/ZipPackage.java Thu Oct 14 09:28:26 2021
@@ -72,28 +72,28 @@ public final class ZipPackage extends OP
     /**
      * @param tempFilePackageParts whether to save package part data in temp files to save memory
      */
-    public void setUseTempFilePackageParts(boolean tempFilePackageParts) {
+    public static void setUseTempFilePackageParts(boolean tempFilePackageParts) {
         useTempFilePackageParts = tempFilePackageParts;
     }
 
     /**
      * @param encryptTempFiles whether to encrypt temp files
      */
-    public void setEncryptTempFilePackageParts(boolean encryptTempFiles) {
+    public static void setEncryptTempFilePackageParts(boolean encryptTempFiles) {
         encryptTempFilePackageParts = encryptTempFiles;
     }
 
     /**
      * @return whether package part data is stored in temp files to save memory
      */
-    public boolean useTempFilePackageParts() {
+    public static boolean useTempFilePackageParts() {
         return useTempFilePackageParts;
     }
 
     /**
      * @return whether package part temp files are encrypted
      */
-    public boolean encryptTempFilePackageParts() {
+    public static boolean encryptTempFilePackageParts() {
         return encryptTempFilePackageParts;
     }
 

Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java?rev=1894224&r1=1894223&r2=1894224&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java Thu Oct 14 09:28:26 2021
@@ -37,18 +37,12 @@ import java.util.List;
 import java.util.function.Consumer;
 import java.util.zip.CRC32;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.ooxml.POIXMLProperties;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
-import org.apache.poi.openxml4j.opc.ContentTypes;
-import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.openxml4j.opc.PackageAccess;
-import org.apache.poi.openxml4j.opc.PackagePart;
-import org.apache.poi.openxml4j.opc.PackagePartName;
-import org.apache.poi.openxml4j.opc.PackageRelationship;
-import org.apache.poi.openxml4j.opc.PackageRelationshipCollection;
-import org.apache.poi.openxml4j.opc.PackagingURIHelper;
+import org.apache.poi.openxml4j.opc.*;
 import org.apache.poi.openxml4j.opc.internal.FileHelper;
 import org.apache.poi.openxml4j.opc.internal.MemoryPackagePart;
 import org.apache.poi.openxml4j.opc.internal.PackagePropertiesPart;
@@ -1207,13 +1201,54 @@ public final class TestXSSFWorkbook exte
         }
     }
 
-    private static void expectFormattedContent(Cell cell, String value) {
-        assertEquals(value, new DataFormatter().formatCellValue(cell),
-                "Cell " + ref(cell) + " has wrong formatted content.");
+    @Test
+    void testNewWorkbookWithTempFilePackageParts() throws Exception {
+        try(UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
+            assertFalse(ZipPackage.useTempFilePackageParts(), "useTempFilePackageParts defaults to false?");
+            assertFalse(ZipPackage.encryptTempFilePackageParts(), "encryptTempFilePackageParts defaults to false?");
+            ZipPackage.setUseTempFilePackageParts(true);
+            assertTrue(ZipPackage.useTempFilePackageParts(), "useTempFilePackageParts was modified?");
+            assertFalse(ZipPackage.encryptTempFilePackageParts(), "encryptTempFilePackageParts was not modified?");
+            try (XSSFWorkbook workbook = new XSSFWorkbook()) {
+                XSSFSheet sheet = workbook.createSheet("sheet1");
+                XSSFRow row = sheet.createRow(0);
+                XSSFCell cell0 = row.createCell(0);
+                cell0.setCellValue("");
+                XSSFCell cell1 = row.createCell(1);
+                cell1.setCellErrorValue(FormulaError.DIV0);
+                XSSFCell cell2 = row.createCell(2);
+                cell2.setCellErrorValue(FormulaError.FUNCTION_NOT_IMPLEMENTED);
+                workbook.write(bos);
+            } finally {
+                ZipPackage.setUseTempFilePackageParts(false);
+            }
+        }
     }
 
-    private static String ref(Cell cell) {
-        return new CellReference(cell).formatAsString();
+    @Test
+    void testNewWorkbookWithEncryptedTempFilePackageParts() throws Exception {
+        try(UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
+            assertFalse(ZipPackage.useTempFilePackageParts(), "useTempFilePackageParts defaults to false?");
+            assertFalse(ZipPackage.encryptTempFilePackageParts(), "encryptTempFilePackageParts defaults to false?");
+            ZipPackage.setUseTempFilePackageParts(true);
+            ZipPackage.setEncryptTempFilePackageParts(true);
+            assertTrue(ZipPackage.useTempFilePackageParts(), "useTempFilePackageParts was modified?");
+            assertTrue(ZipPackage.encryptTempFilePackageParts(), "encryptTempFilePackageParts was modified?");
+            try (XSSFWorkbook workbook = new XSSFWorkbook()) {
+                XSSFSheet sheet = workbook.createSheet("sheet1");
+                XSSFRow row = sheet.createRow(0);
+                XSSFCell cell0 = row.createCell(0);
+                cell0.setCellValue("");
+                XSSFCell cell1 = row.createCell(1);
+                cell1.setCellErrorValue(FormulaError.DIV0);
+                XSSFCell cell2 = row.createCell(2);
+                cell2.setCellErrorValue(FormulaError.FUNCTION_NOT_IMPLEMENTED);
+                workbook.write(bos);
+            } finally {
+                ZipPackage.setUseTempFilePackageParts(false);
+                ZipPackage.setEncryptTempFilePackageParts(false);
+            }
+        }
     }
 
     @Test
@@ -1250,4 +1285,13 @@ public final class TestXSSFWorkbook exte
         }
     }
 
+    private static void expectFormattedContent(Cell cell, String value) {
+        assertEquals(value, new DataFormatter().formatCellValue(cell),
+                "Cell " + ref(cell) + " has wrong formatted content.");
+    }
+
+    private static String ref(Cell cell) {
+        return new CellReference(cell).formatAsString();
+    }
+
 }



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