You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2021/05/14 00:37:53 UTC
svn commit: r1889871 [5/17] - in /poi: site/src/documentation/content/xdocs/
site/src/documentation/content/xdocs/components/ trunk/ trunk/maven/
trunk/osgi/ trunk/osgi/src/test/java/org/apache/poi/osgi/
trunk/poi-examples/src/main/java/org/apache/poi/...
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/DeferredSXSSFITestDataProvider.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/DeferredSXSSFITestDataProvider.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/DeferredSXSSFITestDataProvider.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/DeferredSXSSFITestDataProvider.java Fri May 14 00:37:50 2021
@@ -19,6 +19,12 @@
package org.apache.poi.xssf;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.POIDataSamples;
import org.apache.poi.ss.ITestDataProvider;
import org.apache.poi.ss.SpreadsheetVersion;
@@ -31,13 +37,6 @@ import org.apache.poi.xssf.streaming.SXS
import org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-
public final class DeferredSXSSFITestDataProvider implements ITestDataProvider {
public static final DeferredSXSSFITestDataProvider instance = new DeferredSXSSFITestDataProvider();
@@ -69,16 +68,14 @@ public final class DeferredSXSSFITestDat
throw new IllegalArgumentException("Expected an instance of XSSFWorkbook");
}
- XSSFWorkbook result;
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
+ try (UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream()) {
wb.write(baos);
- InputStream is = new ByteArrayInputStream(baos.toByteArray());
- result = new XSSFWorkbook(is);
+ try (InputStream is = baos.toInputStream()) {
+ return new XSSFWorkbook(is);
+ }
} catch (IOException e) {
throw new RuntimeException(e);
}
- return result;
}
@Override
@@ -87,7 +84,7 @@ public final class DeferredSXSSFITestDat
instances.add(wb);
return wb;
}
-
+
//************ SXSSF-specific methods ***************//
@Override
public DeferredSXSSFWorkbook createWorkbook(int rowAccessWindowSize) {
@@ -95,13 +92,13 @@ public final class DeferredSXSSFITestDat
instances.add(wb);
return wb;
}
-
+
@Override
public void trackAllColumnsForAutosizing(Sheet sheet) {
((DeferredSXSSFSheet)sheet).trackAllColumnsForAutoSizing();
}
//************ End SXSSF-specific methods ***************//
-
+
@Override
public FormulaEvaluator createFormulaEvaluator(Workbook wb) {
return new XSSFFormulaEvaluator(((DeferredSXSSFWorkbook) wb).getXSSFWorkbook());
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/SXSSFITestDataProvider.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/SXSSFITestDataProvider.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/SXSSFITestDataProvider.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/SXSSFITestDataProvider.java Fri May 14 00:37:50 2021
@@ -19,13 +19,12 @@
package org.apache.poi.xssf;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.POIDataSamples;
import org.apache.poi.ss.ITestDataProvider;
import org.apache.poi.ss.SpreadsheetVersion;
@@ -68,16 +67,14 @@ public final class SXSSFITestDataProvide
throw new IllegalArgumentException("Expected an instance of SXSSFWorkbook");
}
- XSSFWorkbook result;
- try {
- ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
+ try (UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream()) {
wb.write(baos);
- InputStream is = new ByteArrayInputStream(baos.toByteArray());
- result = new XSSFWorkbook(is);
+ try (InputStream is = baos.toInputStream()) {
+ return new XSSFWorkbook(is);
+ }
} catch (IOException e) {
throw new RuntimeException(e);
}
- return result;
}
@Override
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFMemoryLeak.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFMemoryLeak.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFMemoryLeak.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFMemoryLeak.java Fri May 14 00:37:50 2021
@@ -21,13 +21,13 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.ooxml.POIXMLException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
@@ -72,7 +72,7 @@ public class TestXSSFMemoryLeak {
// not freed until we free up the Cell itself
//verifier.addObject(ctCell);
- try (OutputStream out = new ByteArrayOutputStream(8192)) {
+ try (OutputStream out = new UnsynchronizedByteArrayOutputStream(8192)) {
wb.write(out);
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java Fri May 14 00:37:50 2021
@@ -17,14 +17,13 @@
package org.apache.poi.xssf;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.ss.usermodel.Workbook;
@@ -62,8 +61,8 @@ public class XSSFTestDataSamples {
}
/**
- * Write out workbook <code>wb</code> to {@link #TEST_OUTPUT_DIR}/testName.xlsx
- * (or create a temporary file if <code>TEST_OUTPUT_DIR</code> is not defined).
+ * Write out workbook {@code wb} to {@link #TEST_OUTPUT_DIR}/testName.xlsx
+ * (or create a temporary file if {@code TEST_OUTPUT_DIR} is not defined).
*
* @param wb the workbook to write
* @param testName a fragment of the filename
@@ -93,7 +92,7 @@ public class XSSFTestDataSamples {
final File file;
if (testOutputDir != null) {
// In case user provided testName with a file extension, don't repeat the file extension a second time
- final String testNameWithExtension = testName.endsWith(".xlsx") ? testName : testName + ".xlsx";
+ final String testNameWithExtension = (testName.endsWith(".xlsx") || testName.endsWith(".xlsxm")) ? testName : testName + ".xlsx";
// FIXME: may want to defer to the TempFile with a persistent file creation strategy to the test output dir
// This would add the random value in the middle of the filename so that test runs wouldn't overwrite files
file = new File(testOutputDir, testNameWithExtension);
@@ -110,14 +109,14 @@ public class XSSFTestDataSamples {
}
/**
- * Write out workbook <code>wb</code> to a memory buffer
+ * Write out workbook {@code wb} to a memory buffer
*
* @param wb the workbook to write
* @return the memory buffer
* @throws IOException If writing the file fails
*/
- public static <R extends Workbook> ByteArrayOutputStream writeOut(R wb) throws IOException {
- ByteArrayOutputStream out = new ByteArrayOutputStream(8192);
+ public static <R extends Workbook> UnsynchronizedByteArrayOutputStream writeOut(R wb) throws IOException {
+ UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream(8192);
wb.write(out);
return out;
}
@@ -130,10 +129,10 @@ public class XSSFTestDataSamples {
* Make sure there are no references to any objects in the workbook
* so that garbage collection may free the workbook.
*
- * After calling this method, null the reference to <code>wb</code>,
+ * After calling this method, null the reference to {@code wb},
* then call {@link #readBack(File)} or {@link #readBackAndDelete(File)} to re-read the file.
*
- * Alternatively, use {@link #writeOutAndClose(Workbook)} to use a ByteArrayOutputStream/ByteArrayInputStream
+ * Alternatively, use {@link #writeOutAndClose(Workbook)} to use a UnsynchronizedByteArrayOutputStream/ByteArrayInputStream
* to avoid creating a temporary file. However, this may complicate the calling
* code to avoid having the workbook, BAOS, and BAIS open at the same time.
*
@@ -156,15 +155,15 @@ public class XSSFTestDataSamples {
/**
- * Write out workbook <code>wb</code> to a memory buffer,
+ * Write out workbook {@code wb} to a memory buffer,
* then close the workbook
*
* @param wb the workbook to write
* @return the memory buffer
* @throws RuntimeException If writing the file fails
*/
- public static <R extends Workbook> ByteArrayOutputStream writeOutAndClose(R wb) throws IOException {
- ByteArrayOutputStream out = writeOut(wb);
+ public static <R extends Workbook> UnsynchronizedByteArrayOutputStream writeOutAndClose(R wb) throws IOException {
+ UnsynchronizedByteArrayOutputStream out = writeOut(wb);
// Do not close the workbook if there was a problem writing the workbook
wb.close();
return out;
@@ -211,8 +210,8 @@ public class XSSFTestDataSamples {
* @return the read back workbook
* @throws IOException If reading the file fails
*/
- public static XSSFWorkbook readBack(ByteArrayOutputStream out) throws IOException {
- try (InputStream is = new ByteArrayInputStream(out.toByteArray())) {
+ public static XSSFWorkbook readBack(UnsynchronizedByteArrayOutputStream out) throws IOException {
+ try (InputStream is = out.toInputStream()) {
out.close();
return new XSSFWorkbook(is);
}
@@ -226,12 +225,12 @@ public class XSSFTestDataSamples {
* Workbook wb = new XSSFWorkbook();
* String testName = "example";
*
- * <code>
+ * {@code
* File file = writeOutAndClose(wb, testName);
* // clear all references that would prevent the workbook from getting garbage collected
* wb = null;
* Workbook wbBack = readBackAndDelete(file);
- * </code>
+ * }
*
* @param wb the workbook to write out
* @return the read back workbook
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java Fri May 14 00:37:50 2021
@@ -24,7 +24,6 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
@@ -34,6 +33,7 @@ import java.util.regex.Pattern;
import javax.xml.parsers.DocumentBuilder;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.ooxml.POIXMLDocumentPart;
import org.apache.poi.ooxml.util.DocumentHelper;
import org.apache.poi.ss.usermodel.Cell;
@@ -66,7 +66,7 @@ public final class TestXSSFExportToXML {
XSSFMap map = mapInfo.getXSSFMapById(1);
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xml = os.toString("UTF-8");
@@ -114,7 +114,7 @@ public final class TestXSSFExportToXML {
XSSFMap map = mapInfo.getXSSFMapById(1);
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xml = os.toString("UTF-8");
@@ -187,7 +187,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map);
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xml = os.toString("UTF-8");
@@ -223,7 +223,7 @@ public final class TestXSSFExportToXML {
for (XSSFMap map : wb.getCustomXMLMappings()) {
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
}
}
@@ -246,7 +246,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map, "XSSFMap is null");
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xmlData = os.toString("UTF-8");
@@ -290,7 +290,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map, "XSSFMap is null");
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xmlData = os.toString("UTF-8");
@@ -325,7 +325,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map, "XSSFMap is null");
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xmlData = os.toString("UTF-8");
@@ -364,7 +364,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map, "XSSFMap is null");
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xmlData = os.toString("UTF-8");
@@ -390,7 +390,7 @@ public final class TestXSSFExportToXML {
for (XSSFMap map : wb.getCustomXMLMappings()) {
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xmlData = os.toString("UTF-8");
@@ -468,7 +468,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map, "XSSFMap is null");
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xmlData = os.toString("UTF-8");
@@ -546,7 +546,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map, "XSSFMap is null");
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xmlData = os.toString("UTF-8");
@@ -577,7 +577,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map, "XSSFMap is null");
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, false);
String xmlData = os.toString("UTF-8");
@@ -609,7 +609,7 @@ public final class TestXSSFExportToXML {
assertNotNull(map, "XSSFMap is null");
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, true);
String xmlData = os.toString("UTF-8");
@@ -635,7 +635,7 @@ public final class TestXSSFExportToXML {
for (XSSFMap map : mappings) {
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream os = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(os, false);
assertNotNull(os.toString("UTF-8"));
}
@@ -647,9 +647,9 @@ public final class TestXSSFExportToXML {
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("61281.xlsx")) {
for (XSSFMap map : wb.getCustomXMLMappings()) {
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
exporter.exportToXML(bos, true);
- assertNotNull(DocumentHelper.readDocument(new ByteArrayInputStream(bos.toByteArray())));
+ assertNotNull(DocumentHelper.readDocument(bos.toInputStream()));
String exportedXml = bos.toString("UTF-8");
assertEquals("<Test><Test>1</Test></Test>", exportedXml.replaceAll("\\s+", ""));
}
@@ -661,7 +661,7 @@ public final class TestXSSFExportToXML {
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("xxe_in_schema.xlsx")) {
for (XSSFMap map : wb.getCustomXMLMappings()) {
XSSFExportToXml exporter = new XSSFExportToXml(map);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
assertThrows(SAXParseException.class, () -> exporter.exportToXML(bos, true));
}
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java Fri May 14 00:37:50 2021
@@ -19,6 +19,7 @@
package org.apache.poi.xssf.streaming;
+import static org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM;
import static org.apache.poi.POITestCase.assertEndsWith;
import static org.apache.poi.POITestCase.assertStartsWith;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
@@ -29,14 +30,13 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.POIDataSamples;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.opc.PackageAccess;
@@ -48,7 +48,6 @@ import org.apache.poi.ss.usermodel.Sheet
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellReference;
-import org.apache.poi.util.NullOutputStream;
import org.apache.poi.xssf.SXSSFITestDataProvider;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.model.SharedStringsTable;
@@ -74,7 +73,7 @@ public final class TestSXSSFWorkbook ext
@Override
@Test
protected void cloneSheet() throws IOException {
- RuntimeException e = assertThrows(RuntimeException.class, () -> super.cloneSheet());
+ RuntimeException e = assertThrows(RuntimeException.class, super::cloneSheet);
assertEquals("Not Implemented", e.getMessage());
}
@@ -84,7 +83,7 @@ public final class TestSXSSFWorkbook ext
@Override
@Test
protected void sheetClone() {
- RuntimeException e = assertThrows(RuntimeException.class, () -> super.sheetClone());
+ RuntimeException e = assertThrows(RuntimeException.class, super::sheetClone);
assertEquals("Not Implemented", e.getMessage());
}
@@ -407,8 +406,8 @@ public final class TestSXSSFWorkbook ext
private static void saveTwice(Workbook wb) throws Exception {
for (int i = 0; i < 2; i++) {
- try (NullOutputStream out = new NullOutputStream()) {
- wb.write(out);
+ try {
+ wb.write(NULL_OUTPUT_STREAM);
} catch (Exception e) {
throw new Exception("ERROR: failed on " + (i + 1)
+ "th time calling " + wb.getClass().getName()
@@ -471,7 +470,7 @@ public final class TestSXSSFWorkbook ext
}
}
- assertDoesNotThrow(() -> swb.write(new NullOutputStream()));
+ assertDoesNotThrow(() -> swb.write(NULL_OUTPUT_STREAM));
swb.dispose();
}
}
@@ -489,7 +488,7 @@ public final class TestSXSSFWorkbook ext
File input = XSSFTestDataSamples.getSampleFile("sample.xlsx");
try (OPCPackage pkg = OPCPackage.open(input, PackageAccess.READ)) {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
try (XSSFWorkbook xssf = new XSSFWorkbook(pkg)) {
try (SXSSFWorkbook wb = new SXSSFWorkbook(xssf, 2)) {
Sheet s = wb.createSheet(sheetName);
@@ -506,7 +505,7 @@ public final class TestSXSSFWorkbook ext
}
}
- try (XSSFWorkbook xssf = new XSSFWorkbook(new ByteArrayInputStream(bos.toByteArray()))) {
+ try (XSSFWorkbook xssf = new XSSFWorkbook(bos.toInputStream())) {
Sheet s = xssf.getSheet(sheetName);
assertEquals(10, s.getLastRowNum());
assertTrue(s.getRow(0).getCell(0).getBooleanCellValue());
@@ -518,20 +517,17 @@ public final class TestSXSSFWorkbook ext
@Test
void test56557() throws IOException {
- Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56557.xlsx");
-
- // Using streaming XSSFWorkbook makes the output file invalid
- wb = new SXSSFWorkbook(((XSSFWorkbook) wb));
-
- // Should not throw POIXMLException: java.io.IOException: Unable to parse xml bean when reading back
- Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb);
- assertNotNull(wbBack);
- wbBack.close();
-
- wb.close();
+ try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("56557.xlsx");
+ // Using streaming XSSFWorkbook makes the output file invalid
+ Workbook wb2 = new SXSSFWorkbook(wb);
+ // Should not throw POIXMLException: java.io.IOException: Unable to parse xml bean when reading back
+ Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb2)
+ ) {
+ assertNotNull(wbBack);
+ }
}
+ @Disabled("not implemented")
void changeSheetNameWithSharedFormulas() {
- /* not implemented */
}
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java Fri May 14 00:37:50 2021
@@ -20,12 +20,11 @@
package org.apache.poi.xssf.streaming;
import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@@ -33,6 +32,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.util.ZipEntrySource;
@@ -58,38 +58,40 @@ public final class TestSXSSFWorkbookWith
// write an unencrypted workbook to disk, but any temporary files are encrypted
@Test
void customZipEntrySource() throws IOException {
- SXSSFWorkbookWithCustomZipEntrySource workbook = new SXSSFWorkbookWithCustomZipEntrySource();
- SXSSFSheet sheet1 = workbook.createSheet(sheetName);
- SXSSFRow row1 = sheet1.createRow(1);
- SXSSFCell cell1 = row1.createCell(1);
- cell1.setCellValue(cellValue);
- ByteArrayOutputStream os = new ByteArrayOutputStream(8192);
- workbook.write(os);
- workbook.close();
- workbook.dispose();
- XSSFWorkbook xwb = new XSSFWorkbook(new ByteArrayInputStream(os.toByteArray()));
- XSSFSheet xs1 = xwb.getSheetAt(0);
- assertEquals(sheetName, xs1.getSheetName());
- XSSFRow xr1 = xs1.getRow(1);
- XSSFCell xc1 = xr1.getCell(1);
- assertEquals(cellValue, xc1.getStringCellValue());
- xwb.close();
+ UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream(8192);
+ try (SXSSFWorkbookWithCustomZipEntrySource workbook = new SXSSFWorkbookWithCustomZipEntrySource()) {
+ SXSSFSheet sheet1 = workbook.createSheet(sheetName);
+ SXSSFRow row1 = sheet1.createRow(1);
+ SXSSFCell cell1 = row1.createCell(1);
+ cell1.setCellValue(cellValue);
+ workbook.write(os);
+ workbook.close();
+ workbook.dispose();
+ }
+ try (XSSFWorkbook xwb = new XSSFWorkbook(os.toInputStream())) {
+ XSSFSheet xs1 = xwb.getSheetAt(0);
+ assertEquals(sheetName, xs1.getSheetName());
+ XSSFRow xr1 = xs1.getRow(1);
+ XSSFCell xc1 = xr1.getCell(1);
+ assertEquals(cellValue, xc1.getStringCellValue());
+ }
}
// write an encrypted workbook to disk, and encrypt any temporary files as well
@Test
void customZipEntrySourceForWriteAndRead() throws IOException, InvalidFormatException {
- SXSSFWorkbookWithCustomZipEntrySource workbook = new SXSSFWorkbookWithCustomZipEntrySource();
- SXSSFSheet sheet1 = workbook.createSheet(sheetName);
- SXSSFRow row1 = sheet1.createRow(1);
- SXSSFCell cell1 = row1.createCell(1);
- cell1.setCellValue(cellValue);
EncryptedTempData tempData = new EncryptedTempData();
- try (OutputStream os = tempData.getOutputStream()) {
- workbook.write(os);
+ try (SXSSFWorkbookWithCustomZipEntrySource workbook = new SXSSFWorkbookWithCustomZipEntrySource()) {
+ SXSSFSheet sheet1 = workbook.createSheet(sheetName);
+ SXSSFRow row1 = sheet1.createRow(1);
+ SXSSFCell cell1 = row1.createCell(1);
+ cell1.setCellValue(cellValue);
+ try (OutputStream os = tempData.getOutputStream()) {
+ workbook.write(os);
+ }
+ workbook.close();
+ workbook.dispose();
}
- workbook.close();
- workbook.dispose();
try (InputStream is = tempData.getInputStream();
ZipEntrySource zipEntrySource = AesZipFileZipEntrySource.createZipEntrySource(is)) {
tempData.dispose();
@@ -111,8 +113,7 @@ public final class TestSXSSFWorkbookWith
SXSSFRow row1 = sheet1.createRow(1);
SXSSFCell cell1 = row1.createCell(1);
cell1.setCellValue(cellValue);
- ByteArrayOutputStream os = new ByteArrayOutputStream(8192);
- workbook.write(os);
+ workbook.write(NULL_OUTPUT_STREAM);
workbook.close();
List<File> tempFiles = workbook.getTempFiles();
assertEquals(1, tempFiles.size());
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java Fri May 14 00:37:50 2021
@@ -17,6 +17,7 @@
package org.apache.poi.xssf.usermodel;
+import static org.apache.poi.xssf.XSSFTestDataSamples.writeOutAndReadBack;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -24,13 +25,13 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Calendar;
import java.util.Date;
import java.util.Hashtable;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.ss.formula.OperationEvaluationContext;
import org.apache.poi.ss.formula.eval.NumberEval;
import org.apache.poi.ss.formula.eval.ValueEval;
@@ -242,7 +243,7 @@ public final class TestUnfixedBugs {
checkRows57423(testSheet);
- Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ Workbook wbBack = writeOutAndReadBack(wb);
/* XSSFTestDataSamples.writeOut(wb, "bug 57423 for manual review"); */
wb.close();
@@ -277,12 +278,8 @@ public final class TestUnfixedBugs {
checkRow57423(testSheet, 17, "17");
checkRow57423(testSheet, 18, "18");
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- try {
- ((XSSFSheet)testSheet).write(stream);
- } finally {
- stream.close();
- }
+ UnsynchronizedByteArrayOutputStream stream = new UnsynchronizedByteArrayOutputStream();
+ ((XSSFSheet)testSheet).write(stream);
// verify that the resulting XML has the rows in correct order as required by Excel
String xml = new String(stream.toByteArray(), StandardCharsets.UTF_8);
@@ -310,27 +307,21 @@ public final class TestUnfixedBugs {
@Test
void bug57423_shiftRowsByLargeOffset() throws IOException {
- try (
- XSSFWorkbook wb = new XSSFWorkbook()
- //OutputStream out = new FileOutputStream("/tmp/57423." + wb.getClass().getName() + ".xlsx"));
- ) {
+ try (XSSFWorkbook wb = new XSSFWorkbook()) {
Sheet sh = wb.createSheet();
sh.createRow(0).createCell(0).setCellValue("a");
sh.createRow(1).createCell(0).setCellValue("b");
sh.createRow(2).createCell(0).setCellValue("c");
sh.shiftRows(0, 1, 3);
- XSSFWorkbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb);
-
- assertThatRowsInAscendingOrder(wb);
- assertThatRowsInAscendingOrder(wbBack);
-
- //wbBack.write(out);
- // Excel reports that the workbook is corrupt because the rows are not in ascending order
- // LibreOffice doesn't complain when rows are not in ascending order
-
- wbBack.close();
-
+ try (XSSFWorkbook wbBack = writeOutAndReadBack(wb)) {
+ assertThatRowsInAscendingOrder(wb);
+ assertThatRowsInAscendingOrder(wbBack);
+
+ //wbBack.write(out);
+ // Excel reports that the workbook is corrupt because the rows are not in ascending order
+ // LibreOffice doesn't complain when rows are not in ascending order
+ }
fail("Excel reports that the workbook is corrupt, LibreOffice can read it");
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org