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/08/28 23:48:49 UTC
svn commit: r1892683 [1/4] - in /poi/trunk: ./ poi-examples/ poi-excelant/
poi-integration/ poi-integration/src/test/java/org/apache/poi/stress/
poi-ooxml-lite/ poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/
poi-ooxml/src/main/java/org/apache...
Author: kiwiwings
Date: Sat Aug 28 23:48:48 2021
New Revision: 1892683
URL: http://svn.apache.org/viewvc?rev=1892683&view=rev
Log:
sonar fixes
close resources in tests
fix gradle warnings
Modified:
poi/trunk/build.gradle
poi/trunk/poi-examples/build.gradle
poi/trunk/poi-excelant/build.gradle
poi/trunk/poi-integration/build.gradle
poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/BaseIntegrationTest.java
poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFFileHandler.java
poi/trunk/poi-ooxml-lite/build.gradle
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/DigestOutputStream.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFIconMultiStateFormatting.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExportToXML.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFFont.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusImage.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/usermodel/HemfEmbeddedIterator.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/PICT.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/EscherTextboxWrapper.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/ExOleObjStg.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/PPDrawingGroup.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/RecordContainer.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/StyleTextPropAtom.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/TextSpecInfoAtom.java
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwmf/usermodel/HwmfEmbeddedIterator.java
poi/trunk/poi/build.gradle
poi/trunk/poi/src/main/java/org/apache/poi/hpsf/ClassID.java
poi/trunk/poi/src/main/java/org/apache/poi/hpsf/PropertySet.java
poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Section.java
poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/RecordInputStream.java
poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java
poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingThreshold.java
poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFIconMultiStateFormatting.java
poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFWorkbookFactory.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIDecryptor.java
poi/trunk/poi/src/main/java/org/apache/poi/poifs/macros/VBAMacroReader.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/ConditionalFormattingThreshold.java
poi/trunk/poi/src/main/java/org/apache/poi/util/GenericRecordJsonWriter.java
poi/trunk/poi/src/main/java/org/apache/poi/util/IOUtils.java
poi/trunk/poi/src/test/java/org/apache/poi/POITestCase.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestSheet.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestSheetShiftRows.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestWorkbook.java
Modified: poi/trunk/build.gradle
URL: http://svn.apache.org/viewvc/poi/trunk/build.gradle?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/build.gradle (original)
+++ poi/trunk/build.gradle Sat Aug 28 23:48:48 2021
@@ -209,7 +209,7 @@ subprojects {
// make XML test-results available for Jenkins CI
useJUnitPlatform()
reports {
- junitXml.enabled = true
+ junitXml.required = true
}
// Exclude some tests that are not actually tests or do not run cleanly on purpose
@@ -238,7 +238,7 @@ subprojects {
"-Dversion.id=${project.version}",
'-ea',
'-Djunit.jupiter.execution.parallel.config.strategy=fixed',
- '-Djunit.jupiter.execution.parallel.config.fixed.parallelism=3'
+ '-Djunit.jupiter.execution.parallel.config.fixed.parallelism=2'
// -Xjit:verbose={compileStart|compileEnd},vlog=build/jit.log${no.jit.sherlock} ... if ${isIBMVM}
]
@@ -278,7 +278,7 @@ subprojects {
jacocoTestReport {
reports {
- xml.enabled true
+ xml.required = true
}
}
@@ -396,6 +396,7 @@ subprojects {
spotbugs {
ignoreFailures = true
+ showStackTraces = false
}
}
@@ -536,7 +537,7 @@ task replaceVersion() {
task zipJavadocs(type: Zip, dependsOn: allJavaDoc) {
from('build/docs/javadoc/')
- destinationDir = file('build/dist')
+ destinationDirectory = file('build/dist')
archiveBaseName = 'poi'
archiveVersion = subprojects[0].version
archiveAppendix = 'javadoc'
Modified: poi/trunk/poi-examples/build.gradle
URL: http://svn.apache.org/viewvc/poi/trunk/poi-examples/build.gradle?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-examples/build.gradle (original)
+++ poi/trunk/poi-examples/build.gradle Sat Aug 28 23:48:48 2021
@@ -65,6 +65,8 @@ task cacheJava9(type: Copy) {
}
jar {
+ dependsOn cacheJava9
+
destinationDirectory = file("../build/dist/maven/${project.archivesBaseName}")
if (JavaVersion.current() == JavaVersion.VERSION_1_8) {
Modified: poi/trunk/poi-excelant/build.gradle
URL: http://svn.apache.org/viewvc/poi/trunk/poi-excelant/build.gradle?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-excelant/build.gradle (original)
+++ poi/trunk/poi-excelant/build.gradle Sat Aug 28 23:48:48 2021
@@ -105,6 +105,8 @@ task cacheTest9(type: Copy) {
}
jar {
+ dependsOn cacheJava9
+
destinationDirectory = file("../build/dist/maven/${project.archivesBaseName}")
if (JavaVersion.current() == JavaVersion.VERSION_1_8) {
@@ -120,7 +122,7 @@ jar {
// Create a separate jar for test-code to depend on it in other projects
// See http://stackoverflow.com/questions/5144325/gradle-test-dependency
-task testJar(type: Jar, dependsOn: testClasses) {
+task testJar(type: Jar, dependsOn: [ testClasses, cacheTest9 ] ) {
destinationDirectory = file("../build/dist/maven/${project.archivesBaseName}-tests")
classifier 'tests'
Modified: poi/trunk/poi-integration/build.gradle
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/build.gradle?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-integration/build.gradle (original)
+++ poi/trunk/poi-integration/build.gradle Sat Aug 28 23:48:48 2021
@@ -96,7 +96,7 @@ jar {
// Create a separate jar for test-code to depend on it in other projects
// See http://stackoverflow.com/questions/5144325/gradle-test-dependency
-task testJar(type: Jar, dependsOn: testClasses) {
+task testJar(type: Jar, dependsOn: [ testClasses, cacheTest9 ] ) {
destinationDirectory = file("../build/dist/maven/${project.archivesBaseName}-tests")
classifier 'tests'
Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/BaseIntegrationTest.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/BaseIntegrationTest.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/BaseIntegrationTest.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/BaseIntegrationTest.java Sat Aug 28 23:48:48 2021
@@ -37,6 +37,7 @@ import org.apache.poi.poifs.filesystem.O
* types of files/exceptions, e.g. old file formats.
*
*/
+@SuppressWarnings({"java:S2187", "unused"})
public class BaseIntegrationTest {
private final File rootDir;
private final String file;
Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFFileHandler.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFFileHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFFileHandler.java Sat Aug 28 23:48:48 2021
@@ -17,6 +17,8 @@
package org.apache.poi.stress;
import static org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM;
+import static org.apache.poi.xssf.XSSFTestDataSamples.getSampleFile;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -219,12 +221,14 @@ class XSSFFileHandler extends Spreadshee
}
@Test
- void testExtracting() throws Exception {
- handleExtracting(new File("test-data/spreadsheet/ref-56737.xlsx"));
+ void testExtracting() {
+ File testFile = getSampleFile("ref-56737.xlsx");
+ assertDoesNotThrow(() -> handleExtracting(testFile));
}
@Test
- void testAdditional() throws Exception {
- handleAdditional(new File("test-data/spreadsheet/poc-xmlbomb.xlsx"));
+ void testAdditional() {
+ File testFile = getSampleFile("poc-xmlbomb.xlsx");
+ assertDoesNotThrow(() -> handleAdditional(testFile));
}
}
Modified: poi/trunk/poi-ooxml-lite/build.gradle
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml-lite/build.gradle?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml-lite/build.gradle (original)
+++ poi/trunk/poi-ooxml-lite/build.gradle Sat Aug 28 23:48:48 2021
@@ -141,3 +141,5 @@ jar {
}
}
+spotbugsTest.enabled = false
+spotbugsMain.enabled = false
\ No newline at end of file
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/DigestOutputStream.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/DigestOutputStream.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/DigestOutputStream.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/DigestOutputStream.java Sat Aug 28 23:48:48 2021
@@ -66,13 +66,14 @@ import org.ietf.jgss.Oid;
}
public byte[] sign() throws IOException, GeneralSecurityException {
- UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
- bos.write(getHashMagic());
- bos.write(md.digest());
-
- final Cipher cipher = CryptoFunctions.getCipher(key, CipherAlgorithm.rsa
- , ChainingMode.ecb, null, Cipher.ENCRYPT_MODE, "PKCS1Padding");
- return cipher.doFinal(bos.toByteArray());
+ try (UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
+ bos.write(getHashMagic());
+ bos.write(md.digest());
+
+ final Cipher cipher = CryptoFunctions.getCipher(key, CipherAlgorithm.rsa
+ , ChainingMode.ecb, null, Cipher.ENCRYPT_MODE, "PKCS1Padding");
+ return cipher.doFinal(bos.toByteArray());
+ }
}
static boolean isMSCapi(final PrivateKey key) {
@@ -91,10 +92,9 @@ import org.ietf.jgss.Oid;
// in an earlier release the hashMagic (aka DigestAlgorithmIdentifier) contained only
// an object identifier, but to conform with the header generated by the
// javax-signature API, the empty <associated parameters> are also included
- try {
+ try (UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
final byte[] oidBytes = new Oid(algo.rsaOid).getDER();
- final UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
bos.write(0x30);
bos.write(algo.hashSize+oidBytes.length+6);
bos.write(0x30);
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java Sat Aug 28 23:48:48 2021
@@ -90,12 +90,13 @@ public class OOXMLURIDereferencer implem
// although xmlsec has an option to ignore line breaks, currently this
// only affects .rels files, so we only modify these
// http://stackoverflow.com/questions/4728300
- UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
- for (int ch; (ch = dataStream.read()) != -1; ) {
- if (ch == 10 || ch == 13) continue;
- bos.write(ch);
+ try (UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
+ for (int ch; (ch = dataStream.read()) != -1; ) {
+ if (ch == 10 || ch == 13) continue;
+ bos.write(ch);
+ }
+ dataStream = bos.toInputStream();
}
- dataStream = bos.toInputStream();
}
} catch (IOException e) {
throw new URIReferenceException("I/O error: " + e.getMessage(), e);
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java Sat Aug 28 23:48:48 2021
@@ -289,8 +289,7 @@ public class XAdESXLSignatureFacet imple
}
public static byte[] getC14nValue(List<Node> nodeList, String c14nAlgoId) {
- UnsynchronizedByteArrayOutputStream c14nValue = new UnsynchronizedByteArrayOutputStream();
- try {
+ try (UnsynchronizedByteArrayOutputStream c14nValue = new UnsynchronizedByteArrayOutputStream()) {
for (Node node : nodeList) {
/*
* Re-initialize the c14n else the namespaces will get cached
@@ -299,12 +298,12 @@ public class XAdESXLSignatureFacet imple
Canonicalizer c14n = Canonicalizer.getInstance(c14nAlgoId);
c14n.canonicalizeSubtree(node, c14nValue);
}
+ return c14nValue.toByteArray();
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
throw new RuntimeException("c14n error: " + e.getMessage(), e);
}
- return c14nValue.toByteArray();
}
private BigInteger getCrlNumber(X509CRL crl) {
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingThreshold.java Sat Aug 28 23:48:48 2021
@@ -27,34 +27,39 @@ import org.openxmlformats.schemas.spread
* Colour Scale change thresholds
*/
public class XSSFConditionalFormattingThreshold implements org.apache.poi.ss.usermodel.ConditionalFormattingThreshold {
- private CTCfvo cfvo;
-
+ private final CTCfvo cfvo;
+
protected XSSFConditionalFormattingThreshold(CTCfvo cfvo) {
this.cfvo = cfvo;
}
-
+
protected CTCfvo getCTCfvo() {
return cfvo;
}
+ @Override
public RangeType getRangeType() {
return RangeType.byName(cfvo.getType().toString());
}
+ @Override
public void setRangeType(RangeType type) {
STCfvoType.Enum xtype = STCfvoType.Enum.forString(type.name);
cfvo.setType(xtype);
}
+ @Override
public String getFormula() {
if (cfvo.getType() == STCfvoType.FORMULA) {
return cfvo.getVal();
}
return null;
}
+ @Override
public void setFormula(String formula) {
cfvo.setVal(formula);
}
+ @Override
public Double getValue() {
if (cfvo.getType() == STCfvoType.FORMULA ||
cfvo.getType() == STCfvoType.MIN ||
@@ -67,6 +72,7 @@ public class XSSFConditionalFormattingTh
return null;
}
}
+ @Override
public void setValue(Double value) {
if (value == null) {
cfvo.unsetVal();
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFIconMultiStateFormatting.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFIconMultiStateFormatting.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFIconMultiStateFormatting.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFIconMultiStateFormatting.java Sat Aug 28 23:48:48 2021
@@ -25,7 +25,7 @@ import org.openxmlformats.schemas.spread
import org.openxmlformats.schemas.spreadsheetml.x2006.main.STIconSetType;
/**
- * High level representation for Icon / Multi-State Formatting
+ * High level representation for Icon / Multi-State Formatting
* component of Conditional Formatting settings
*/
public class XSSFIconMultiStateFormatting implements IconMultiStateFormatting {
@@ -35,42 +35,50 @@ public class XSSFIconMultiStateFormattin
_iconset = iconset;
}
+ @Override
public IconSet getIconSet() {
String set = _iconset.getIconSet().toString();
return IconSet.byName(set);
}
+ @Override
public void setIconSet(IconSet set) {
STIconSetType.Enum xIconSet = STIconSetType.Enum.forString(set.name);
_iconset.setIconSet(xIconSet);
}
+ @Override
public boolean isIconOnly() {
if (_iconset.isSetShowValue())
return !_iconset.getShowValue();
return false;
}
+ @Override
public void setIconOnly(boolean only) {
_iconset.setShowValue(!only);
}
+ @Override
public boolean isReversed() {
if (_iconset.isSetReverse())
return _iconset.getReverse();
return false;
}
+ @Override
public void setReversed(boolean reversed) {
_iconset.setReverse(reversed);
}
+ @Override
public XSSFConditionalFormattingThreshold[] getThresholds() {
CTCfvo[] cfvos = _iconset.getCfvoArray();
- XSSFConditionalFormattingThreshold[] t =
+ XSSFConditionalFormattingThreshold[] t =
new XSSFConditionalFormattingThreshold[cfvos.length];
for (int i=0; i<cfvos.length; i++) {
t[i] = new XSSFConditionalFormattingThreshold(cfvos[i]);
}
return t;
}
+ @Override
public void setThresholds(ConditionalFormattingThreshold[] thresholds) {
CTCfvo[] cfvos = new CTCfvo[thresholds.length];
for (int i=0; i<thresholds.length; i++) {
@@ -78,6 +86,7 @@ public class XSSFIconMultiStateFormattin
}
_iconset.setCfvoArray(cfvos);
}
+ @Override
public XSSFConditionalFormattingThreshold createThreshold() {
return new XSSFConditionalFormattingThreshold(_iconset.addNewCfvo());
}
Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbookFactory.java Sat Aug 28 23:48:48 2021
@@ -139,6 +139,7 @@ public class XSSFWorkbookFactory impleme
* @throws IOException if an error occurs while reading the data
* @throws EncryptedDocumentException If the wrong password is given for a protected file
*/
+ @Override
@SuppressWarnings("resource")
public XSSFWorkbook create(File file, String password, boolean readOnly) throws IOException {
FileMagic fm = FileMagic.valueOf(file);
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=1892683&r1=1892682&r2=1892683&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 Sat Aug 28 23:48:48 2021
@@ -45,7 +45,6 @@ import org.apache.poi.xssf.XSSFTestDataS
import org.apache.poi.xssf.model.MapInfo;
import org.apache.poi.xssf.usermodel.XSSFMap;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
@@ -216,15 +215,13 @@ public final class TestXSSFExportToXML {
}
@Test
- @Disabled(value="Fails, but I don't know if it is ok or not...")
void testExportToXMLSingleAttributeNamespace() throws Exception {
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("CustomXMLMapping-singleattributenamespace.xlsx")) {
-
for (XSSFMap map : wb.getCustomXMLMappings()) {
XSSFExportToXml exporter = new XSSFExportToXml(map);
-
UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
- exporter.exportToXML(os, true);
+ SAXParseException ex = assertThrows(SAXParseException.class, () -> exporter.exportToXML(os, true));
+ assertEquals("schema_reference: Failed to read schema document 'Schema11', because 'file' access is not allowed due to restriction set by the accessExternalSchema property.", ex.getMessage().trim());
}
}
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestDeferredSXSSFWorkbook.java Sat Aug 28 23:48:48 2021
@@ -41,6 +41,8 @@ import org.apache.poi.xssf.usermodel.XSS
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
public final class TestDeferredSXSSFWorkbook extends BaseTestXWorkbook {
@@ -90,112 +92,109 @@ public final class TestDeferredSXSSFWork
@Test
void existingWorkbook() throws IOException {
- XSSFWorkbook xssfWb1 = new XSSFWorkbook();
- xssfWb1.createSheet("S1");
- DeferredSXSSFWorkbook wb1 = new DeferredSXSSFWorkbook(xssfWb1);
- XSSFWorkbook xssfWb2 = DeferredSXSSFITestDataProvider.instance.writeOutAndReadBack(wb1);
- assertTrue(wb1.dispose());
-
- DeferredSXSSFWorkbook wb2 = new DeferredSXSSFWorkbook(xssfWb2);
- assertEquals(1, wb2.getNumberOfSheets());
- Sheet sheet = wb2.getStreamingSheetAt(0);
- assertNotNull(sheet);
- assertEquals("S1", sheet.getSheetName());
- assertTrue(wb2.dispose());
- xssfWb2.close();
- xssfWb1.close();
-
- wb2.close();
- wb1.close();
+ try (XSSFWorkbook xssfWb1 = new XSSFWorkbook()) {
+ xssfWb1.createSheet("S1");
+ try (DeferredSXSSFWorkbook wb1 = new DeferredSXSSFWorkbook(xssfWb1);
+ XSSFWorkbook xssfWb2 = DeferredSXSSFITestDataProvider.instance.writeOutAndReadBack(wb1)) {
+ assertTrue(wb1.dispose());
+
+ try (DeferredSXSSFWorkbook wb2 = new DeferredSXSSFWorkbook(xssfWb2)) {
+ assertEquals(1, wb2.getNumberOfSheets());
+ Sheet sheet = wb2.getStreamingSheetAt(0);
+ assertNotNull(sheet);
+ assertEquals("S1", sheet.getSheetName());
+ assertTrue(wb2.dispose());
+ }
+ }
+ }
}
@Test
void addToExistingWorkbook() throws IOException {
- XSSFWorkbook xssfWb1 = new XSSFWorkbook();
- xssfWb1.createSheet("S1");
- Sheet sheet = xssfWb1.createSheet("S2");
- Row row = sheet.createRow(1);
- Cell cell = row.createCell(1);
- cell.setCellValue("value 2_1_1");
- DeferredSXSSFWorkbook wb1 = new DeferredSXSSFWorkbook(xssfWb1);
- XSSFWorkbook xssfWb2 = DeferredSXSSFITestDataProvider.instance.writeOutAndReadBack(wb1);
- assertTrue(wb1.dispose());
- xssfWb1.close();
-
- DeferredSXSSFWorkbook wb2 = new DeferredSXSSFWorkbook(xssfWb2);
- // Add a row to the existing empty sheet
- DeferredSXSSFSheet ssheet1 = wb2.getStreamingSheetAt(0);
- ssheet1.setRowGenerator((ssxSheet) -> {
- Row row1_1 = ssxSheet.createRow(1);
- Cell cell1_1_1 = row1_1.createCell(1);
- cell1_1_1.setCellValue("value 1_1_1");
- });
-
- // Add a row to the existing non-empty sheet
- DeferredSXSSFSheet ssheet2 = wb2.getStreamingSheetAt(1);
- ssheet2.setRowGenerator((ssxSheet) -> {
- Row row2_2 = ssxSheet.createRow(2);
- Cell cell2_2_1 = row2_2.createCell(1);
- cell2_2_1.setCellValue("value 2_2_1");
- });
- // Add a sheet with one row
- DeferredSXSSFSheet ssheet3 = wb2.createSheet("S3");
- ssheet3.setRowGenerator((ssxSheet) -> {
- Row row3_1 = ssxSheet.createRow(1);
- Cell cell3_1_1 = row3_1.createCell(1);
- cell3_1_1.setCellValue("value 3_1_1");
- });
-
- XSSFWorkbook xssfWb3 = DeferredSXSSFITestDataProvider.instance.writeOutAndReadBack(wb2);
- wb2.close();
-
- assertEquals(3, xssfWb3.getNumberOfSheets());
- // Verify sheet 1
- XSSFSheet sheet1 = xssfWb3.getSheetAt(0);
- assertEquals("S1", sheet1.getSheetName());
- assertEquals(1, sheet1.getPhysicalNumberOfRows());
- XSSFRow row1_1 = sheet1.getRow(1);
- assertNotNull(row1_1);
- XSSFCell cell1_1_1 = row1_1.getCell(1);
- assertNotNull(cell1_1_1);
- assertEquals("value 1_1_1", cell1_1_1.getStringCellValue());
- // Verify sheet 2
- XSSFSheet sheet2 = xssfWb3.getSheetAt(1);
- assertEquals("S2", sheet2.getSheetName());
- assertEquals(2, sheet2.getPhysicalNumberOfRows());
- Row row2_1 = sheet2.getRow(1);
- assertNotNull(row2_1);
- Cell cell2_1_1 = row2_1.getCell(1);
- assertNotNull(cell2_1_1);
- assertEquals("value 2_1_1", cell2_1_1.getStringCellValue());
- XSSFRow row2_2 = sheet2.getRow(2);
- assertNotNull(row2_2);
- XSSFCell cell2_2_1 = row2_2.getCell(1);
- assertNotNull(cell2_2_1);
- assertEquals("value 2_2_1", cell2_2_1.getStringCellValue());
- // Verify sheet 3
- XSSFSheet sheet3 = xssfWb3.getSheetAt(2);
- assertEquals("S3", sheet3.getSheetName());
- assertEquals(1, sheet3.getPhysicalNumberOfRows());
- XSSFRow row3_1 = sheet3.getRow(1);
- assertNotNull(row3_1);
- XSSFCell cell3_1_1 = row3_1.getCell(1);
- assertNotNull(cell3_1_1);
- assertEquals("value 3_1_1", cell3_1_1.getStringCellValue());
-
- xssfWb2.close();
- xssfWb3.close();
- wb1.close();
+ try (XSSFWorkbook xssfWb1 = new XSSFWorkbook()) {
+ xssfWb1.createSheet("S1");
+ Sheet sheet = xssfWb1.createSheet("S2");
+ Row row = sheet.createRow(1);
+ Cell cell = row.createCell(1);
+ cell.setCellValue("value 2_1_1");
+
+ try (DeferredSXSSFWorkbook wb1 = new DeferredSXSSFWorkbook(xssfWb1);
+ XSSFWorkbook xssfWb2 = DeferredSXSSFITestDataProvider.instance.writeOutAndReadBack(wb1)) {
+ assertTrue(wb1.dispose());
+
+ try (DeferredSXSSFWorkbook wb2 = new DeferredSXSSFWorkbook(xssfWb2)) {
+ // Add a row to the existing empty sheet
+ DeferredSXSSFSheet ssheet1 = wb2.getStreamingSheetAt(0);
+ ssheet1.setRowGenerator((ssxSheet) -> {
+ Row row1_1 = ssxSheet.createRow(1);
+ Cell cell1_1_1 = row1_1.createCell(1);
+ cell1_1_1.setCellValue("value 1_1_1");
+ });
+
+ // Add a row to the existing non-empty sheet
+ DeferredSXSSFSheet ssheet2 = wb2.getStreamingSheetAt(1);
+ ssheet2.setRowGenerator((ssxSheet) -> {
+ Row row2_2 = ssxSheet.createRow(2);
+ Cell cell2_2_1 = row2_2.createCell(1);
+ cell2_2_1.setCellValue("value 2_2_1");
+ });
+ // Add a sheet with one row
+ DeferredSXSSFSheet ssheet3 = wb2.createSheet("S3");
+ ssheet3.setRowGenerator((ssxSheet) -> {
+ Row row3_1 = ssxSheet.createRow(1);
+ Cell cell3_1_1 = row3_1.createCell(1);
+ cell3_1_1.setCellValue("value 3_1_1");
+ });
+
+ try (XSSFWorkbook xssfWb3 = DeferredSXSSFITestDataProvider.instance.writeOutAndReadBack(wb2)) {
+
+ assertEquals(3, xssfWb3.getNumberOfSheets());
+ // Verify sheet 1
+ XSSFSheet sheet1 = xssfWb3.getSheetAt(0);
+ assertEquals("S1", sheet1.getSheetName());
+ assertEquals(1, sheet1.getPhysicalNumberOfRows());
+ XSSFRow row1_1 = sheet1.getRow(1);
+ assertNotNull(row1_1);
+ XSSFCell cell1_1_1 = row1_1.getCell(1);
+ assertNotNull(cell1_1_1);
+ assertEquals("value 1_1_1", cell1_1_1.getStringCellValue());
+ // Verify sheet 2
+ XSSFSheet sheet2 = xssfWb3.getSheetAt(1);
+ assertEquals("S2", sheet2.getSheetName());
+ assertEquals(2, sheet2.getPhysicalNumberOfRows());
+ Row row2_1 = sheet2.getRow(1);
+ assertNotNull(row2_1);
+ Cell cell2_1_1 = row2_1.getCell(1);
+ assertNotNull(cell2_1_1);
+ assertEquals("value 2_1_1", cell2_1_1.getStringCellValue());
+ XSSFRow row2_2 = sheet2.getRow(2);
+ assertNotNull(row2_2);
+ XSSFCell cell2_2_1 = row2_2.getCell(1);
+ assertNotNull(cell2_2_1);
+ assertEquals("value 2_2_1", cell2_2_1.getStringCellValue());
+ // Verify sheet 3
+ XSSFSheet sheet3 = xssfWb3.getSheetAt(2);
+ assertEquals("S3", sheet3.getSheetName());
+ assertEquals(1, sheet3.getPhysicalNumberOfRows());
+ XSSFRow row3_1 = sheet3.getRow(1);
+ assertNotNull(row3_1);
+ XSSFCell cell3_1_1 = row3_1.getCell(1);
+ assertNotNull(cell3_1_1);
+ assertEquals("value 3_1_1", cell3_1_1.getStringCellValue());
+ }
+ }
+ }
+ }
}
@Test
void sheetdataWriter() throws IOException {
- DeferredSXSSFWorkbook wb = new DeferredSXSSFWorkbook();
- SXSSFSheet sh = wb.createSheet();
- assertSame(sh.getClass(), DeferredSXSSFSheet.class);
- SheetDataWriter wr = sh.getSheetDataWriter();
- assertNull(wr);
- wb.close();
+ try (DeferredSXSSFWorkbook wb = new DeferredSXSSFWorkbook()) {
+ SXSSFSheet sh = wb.createSheet();
+ assertSame(sh.getClass(), DeferredSXSSFSheet.class);
+ SheetDataWriter wr = sh.getSheetDataWriter();
+ assertNull(wr);
+ }
}
@Test
@@ -225,71 +224,65 @@ public final class TestDeferredSXSSFWork
@Test
void gzipSheetdataWriter() throws IOException {
- DeferredSXSSFWorkbook wb = new DeferredSXSSFWorkbook();
-
- final int rowNum = 1000;
- final int sheetNum = 5;
- populateData(wb, 1000, 5);
-
- XSSFWorkbook xwb = DeferredSXSSFITestDataProvider.instance.writeOutAndReadBack(wb);
- for (int i = 0; i < sheetNum; i++) {
- Sheet sh = xwb.getSheetAt(i);
- assertEquals("sheet" + i, sh.getSheetName());
- for (int j = 0; j < rowNum; j++) {
- Row row = sh.getRow(j);
- assertNotNull(row, "row[" + j + "]");
- Cell cell1 = row.getCell(0);
- assertEquals(new CellReference(cell1).formatAsString(), cell1.getStringCellValue());
+ try (DeferredSXSSFWorkbook wb = new DeferredSXSSFWorkbook()) {
- Cell cell2 = row.getCell(1);
- assertEquals(i, (int) cell2.getNumericCellValue());
+ final int rowNum = 1000;
+ final int sheetNum = 5;
+ populateData(wb);
+
+ try (XSSFWorkbook xwb = DeferredSXSSFITestDataProvider.instance.writeOutAndReadBack(wb)) {
+ for (int i = 0; i < sheetNum; i++) {
+ Sheet sh = xwb.getSheetAt(i);
+ assertEquals("sheet" + i, sh.getSheetName());
+ for (int j = 0; j < rowNum; j++) {
+ Row row = sh.getRow(j);
+ assertNotNull(row, "row[" + j + "]");
+ Cell cell1 = row.getCell(0);
+ assertEquals(new CellReference(cell1).formatAsString(), cell1.getStringCellValue());
+
+ Cell cell2 = row.getCell(1);
+ assertEquals(i, (int) cell2.getNumericCellValue());
+
+ Cell cell3 = row.getCell(2);
+ assertEquals(j, (int) cell3.getNumericCellValue());
+ }
+ }
- Cell cell3 = row.getCell(2);
- assertEquals(j, (int) cell3.getNumericCellValue());
+ assertTrue(wb.dispose());
}
}
-
- assertTrue(wb.dispose());
- xwb.close();
- wb.close();
}
- @Test
- void workbookDispose() throws IOException {
- DeferredSXSSFWorkbook wb1 = new DeferredSXSSFWorkbook();
- // the underlying writer is SheetDataWriter
- assertWorkbookDispose(wb1);
- wb1.close();
-
- DeferredSXSSFWorkbook wb2 = new DeferredSXSSFWorkbook();
- wb2.setCompressTempFiles(true);
- // the underlying writer is GZIPSheetDataWriter
- assertWorkbookDispose(wb2);
- wb2.close();
- }
-
- private static void assertWorkbookDispose(DeferredSXSSFWorkbook wb) {
- populateData(wb, 1000, 5);
-
- for (Sheet sheet : wb) {
- DeferredSXSSFSheet sxSheet = (DeferredSXSSFSheet) sheet;
- assertNull(sxSheet.getSheetDataWriter());
- }
+ @ParameterizedTest
+ @ValueSource(booleans = {false, true})
+ void workbookDispose(boolean compressTempFiles) throws IOException {
+ try (DeferredSXSSFWorkbook wb = new DeferredSXSSFWorkbook()) {
+ // compressTempFiles == false: the underlying writer is SheetDataWriter
+ // compressTempFiles == true: the underlying writer is GZIPSheetDataWriter
+ wb.setCompressTempFiles(compressTempFiles);
+
+ populateData(wb);
+
+ for (Sheet sheet : wb) {
+ DeferredSXSSFSheet sxSheet = (DeferredSXSSFSheet) sheet;
+ assertNull(sxSheet.getSheetDataWriter());
+ }
- assertTrue(wb.dispose());
+ assertTrue(wb.dispose());
- for (Sheet sheet : wb) {
- DeferredSXSSFSheet sxSheet = (DeferredSXSSFSheet) sheet;
- assertNull(sxSheet.getSheetDataWriter());
+ for (Sheet sheet : wb) {
+ DeferredSXSSFSheet sxSheet = (DeferredSXSSFSheet) sheet;
+ assertNull(sxSheet.getSheetDataWriter());
+ }
}
}
- private static void populateData(DeferredSXSSFWorkbook wb, final int rowNum, final int sheetNum) {
- for (int i = 0; i < sheetNum; i++) {
+ private static void populateData(DeferredSXSSFWorkbook wb) {
+ for (int i = 0; i < 5; i++) {
DeferredSXSSFSheet sheet = wb.createSheet("sheet" + i);
int index = i;
sheet.setRowGenerator((sh) -> {
- for (int j = 0; j < rowNum; j++) {
+ for (int j = 0; j < 1000; j++) {
Row row = sh.createRow(j);
Cell cell1 = row.createCell(0);
cell1.setCellValue(new CellReference(cell1).formatAsString());
@@ -304,7 +297,8 @@ public final class TestDeferredSXSSFWork
}
}
- void changeSheetNameWithSharedFormulas() {
- /* not implemented */
+ @Override
+ @Disabled("not implemented")
+ protected void changeSheetNameWithSharedFormulas() {
}
}
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=1892683&r1=1892682&r2=1892683&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 Sat Aug 28 23:48:48 2021
@@ -55,6 +55,8 @@ import org.apache.poi.xssf.usermodel.XSS
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
public final class TestSXSSFWorkbook extends BaseTestXWorkbook {
@@ -98,225 +100,201 @@ public final class TestSXSSFWorkbook ext
@Test
void existingWorkbook() throws IOException {
- XSSFWorkbook xssfWb1 = new XSSFWorkbook();
- xssfWb1.createSheet("S1");
- SXSSFWorkbook wb1 = new SXSSFWorkbook(xssfWb1);
- XSSFWorkbook xssfWb2 = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb1);
- assertTrue(wb1.dispose());
-
- SXSSFWorkbook wb2 = new SXSSFWorkbook(xssfWb2);
- assertEquals(1, wb2.getNumberOfSheets());
- Sheet sheet = wb2.getSheetAt(0);
- assertNotNull(sheet);
- assertEquals("S1", sheet.getSheetName());
- assertTrue(wb2.dispose());
- xssfWb2.close();
- xssfWb1.close();
-
- wb2.close();
- wb1.close();
+ try (XSSFWorkbook xssfWb1 = new XSSFWorkbook()) {
+ xssfWb1.createSheet("S1");
+ try (SXSSFWorkbook wb1 = new SXSSFWorkbook(xssfWb1);
+ XSSFWorkbook xssfWb2 = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb1)) {
+ assertTrue(wb1.dispose());
+
+ try (SXSSFWorkbook wb2 = new SXSSFWorkbook(xssfWb2)) {
+ assertEquals(1, wb2.getNumberOfSheets());
+ Sheet sheet = wb2.getSheetAt(0);
+ assertNotNull(sheet);
+ assertEquals("S1", sheet.getSheetName());
+ assertTrue(wb2.dispose());
+ }
+ }
+ }
}
@Test
void useSharedStringsTable() throws Exception {
- SXSSFWorkbook wb = new SXSSFWorkbook(null, 10, false, true);
+ try (SXSSFWorkbook wb = new SXSSFWorkbook(null, 10, false, true)) {
+
+ SharedStringsTable sss = wb.getSharedStringSource();
- SharedStringsTable sss = wb.getSharedStringSource();
+ assertNotNull(sss);
- assertNotNull(sss);
+ Row row = wb.createSheet("S1").createRow(0);
- Row row = wb.createSheet("S1").createRow(0);
+ row.createCell(0).setCellValue("A");
+ row.createCell(1).setCellValue("B");
+ row.createCell(2).setCellValue("A");
- row.createCell(0).setCellValue("A");
- row.createCell(1).setCellValue("B");
- row.createCell(2).setCellValue("A");
-
- XSSFWorkbook xssfWorkbook = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb);
- sss = wb.getSharedStringSource();
- assertEquals(2, sss.getUniqueCount());
- assertTrue(wb.dispose());
-
- Sheet sheet1 = xssfWorkbook.getSheetAt(0);
- assertEquals("S1", sheet1.getSheetName());
- assertEquals(1, sheet1.getPhysicalNumberOfRows());
- row = sheet1.getRow(0);
- assertNotNull(row);
- Cell cell = row.getCell(0);
- assertNotNull(cell);
- assertEquals("A", cell.getStringCellValue());
- cell = row.getCell(1);
- assertNotNull(cell);
- assertEquals("B", cell.getStringCellValue());
- cell = row.getCell(2);
- assertNotNull(cell);
- assertEquals("A", cell.getStringCellValue());
+ try (XSSFWorkbook xssfWorkbook = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb)) {
+ sss = wb.getSharedStringSource();
+ assertEquals(2, sss.getUniqueCount());
+ assertTrue(wb.dispose());
- xssfWorkbook.close();
- wb.close();
+ Sheet sheet1 = xssfWorkbook.getSheetAt(0);
+ assertEquals("S1", sheet1.getSheetName());
+ assertEquals(1, sheet1.getPhysicalNumberOfRows());
+ row = sheet1.getRow(0);
+ assertNotNull(row);
+ Cell cell = row.getCell(0);
+ assertNotNull(cell);
+ assertEquals("A", cell.getStringCellValue());
+ cell = row.getCell(1);
+ assertNotNull(cell);
+ assertEquals("B", cell.getStringCellValue());
+ cell = row.getCell(2);
+ assertNotNull(cell);
+ assertEquals("A", cell.getStringCellValue());
+ }
+ }
}
@Test
void addToExistingWorkbook() throws IOException {
- XSSFWorkbook xssfWb1 = new XSSFWorkbook();
- xssfWb1.createSheet("S1");
- Sheet sheet = xssfWb1.createSheet("S2");
- Row row = sheet.createRow(1);
- Cell cell = row.createCell(1);
- cell.setCellValue("value 2_1_1");
- SXSSFWorkbook wb1 = new SXSSFWorkbook(xssfWb1);
- XSSFWorkbook xssfWb2 = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb1);
- assertTrue(wb1.dispose());
- xssfWb1.close();
-
- SXSSFWorkbook wb2 = new SXSSFWorkbook(xssfWb2);
- // Add a row to the existing empty sheet
- Sheet sheet1 = wb2.getSheetAt(0);
- Row row1_1 = sheet1.createRow(1);
- Cell cell1_1_1 = row1_1.createCell(1);
- cell1_1_1.setCellValue("value 1_1_1");
-
- // Add a row to the existing non-empty sheet
- Sheet sheet2 = wb2.getSheetAt(1);
- Row row2_2 = sheet2.createRow(2);
- Cell cell2_2_1 = row2_2.createCell(1);
- cell2_2_1.setCellValue("value 2_2_1");
-
- // Add a sheet with one row
- Sheet sheet3 = wb2.createSheet("S3");
- Row row3_1 = sheet3.createRow(1);
- Cell cell3_1_1 = row3_1.createCell(1);
- cell3_1_1.setCellValue("value 3_1_1");
-
- XSSFWorkbook xssfWb3 = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb2);
- wb2.close();
-
- assertEquals(3, xssfWb3.getNumberOfSheets());
- // Verify sheet 1
- sheet1 = xssfWb3.getSheetAt(0);
- assertEquals("S1", sheet1.getSheetName());
- assertEquals(1, sheet1.getPhysicalNumberOfRows());
- row1_1 = sheet1.getRow(1);
- assertNotNull(row1_1);
- cell1_1_1 = row1_1.getCell(1);
- assertNotNull(cell1_1_1);
- assertEquals("value 1_1_1", cell1_1_1.getStringCellValue());
- // Verify sheet 2
- sheet2 = xssfWb3.getSheetAt(1);
- assertEquals("S2", sheet2.getSheetName());
- assertEquals(2, sheet2.getPhysicalNumberOfRows());
- Row row2_1 = sheet2.getRow(1);
- assertNotNull(row2_1);
- Cell cell2_1_1 = row2_1.getCell(1);
- assertNotNull(cell2_1_1);
- assertEquals("value 2_1_1", cell2_1_1.getStringCellValue());
- row2_2 = sheet2.getRow(2);
- assertNotNull(row2_2);
- cell2_2_1 = row2_2.getCell(1);
- assertNotNull(cell2_2_1);
- assertEquals("value 2_2_1", cell2_2_1.getStringCellValue());
- // Verify sheet 3
- sheet3 = xssfWb3.getSheetAt(2);
- assertEquals("S3", sheet3.getSheetName());
- assertEquals(1, sheet3.getPhysicalNumberOfRows());
- row3_1 = sheet3.getRow(1);
- assertNotNull(row3_1);
- cell3_1_1 = row3_1.getCell(1);
- assertNotNull(cell3_1_1);
- assertEquals("value 3_1_1", cell3_1_1.getStringCellValue());
-
- xssfWb2.close();
- xssfWb3.close();
- wb1.close();
+ try (XSSFWorkbook xssfWb1 = new XSSFWorkbook()) {
+ xssfWb1.createSheet("S1");
+ Sheet sheet = xssfWb1.createSheet("S2");
+ Row row = sheet.createRow(1);
+ Cell cell = row.createCell(1);
+ cell.setCellValue("value 2_1_1");
+ try (SXSSFWorkbook wb1 = new SXSSFWorkbook(xssfWb1);
+ XSSFWorkbook xssfWb2 = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb1)) {
+ assertTrue(wb1.dispose());
+
+ try (SXSSFWorkbook wb2 = new SXSSFWorkbook(xssfWb2)) {
+ // Add a row to the existing empty sheet
+ Sheet sheet1 = wb2.getSheetAt(0);
+ Row row1_1 = sheet1.createRow(1);
+ Cell cell1_1_1 = row1_1.createCell(1);
+ cell1_1_1.setCellValue("value 1_1_1");
+
+ // Add a row to the existing non-empty sheet
+ Sheet sheet2 = wb2.getSheetAt(1);
+ Row row2_2 = sheet2.createRow(2);
+ Cell cell2_2_1 = row2_2.createCell(1);
+ cell2_2_1.setCellValue("value 2_2_1");
+
+ // Add a sheet with one row
+ Sheet sheet3 = wb2.createSheet("S3");
+ Row row3_1 = sheet3.createRow(1);
+ Cell cell3_1_1 = row3_1.createCell(1);
+ cell3_1_1.setCellValue("value 3_1_1");
+
+ try (XSSFWorkbook xssfWb3 = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb2)) {
+ assertEquals(3, xssfWb3.getNumberOfSheets());
+ // Verify sheet 1
+ sheet1 = xssfWb3.getSheetAt(0);
+ assertEquals("S1", sheet1.getSheetName());
+ assertEquals(1, sheet1.getPhysicalNumberOfRows());
+ row1_1 = sheet1.getRow(1);
+ assertNotNull(row1_1);
+ cell1_1_1 = row1_1.getCell(1);
+ assertNotNull(cell1_1_1);
+ assertEquals("value 1_1_1", cell1_1_1.getStringCellValue());
+ // Verify sheet 2
+ sheet2 = xssfWb3.getSheetAt(1);
+ assertEquals("S2", sheet2.getSheetName());
+ assertEquals(2, sheet2.getPhysicalNumberOfRows());
+ Row row2_1 = sheet2.getRow(1);
+ assertNotNull(row2_1);
+ Cell cell2_1_1 = row2_1.getCell(1);
+ assertNotNull(cell2_1_1);
+ assertEquals("value 2_1_1", cell2_1_1.getStringCellValue());
+ row2_2 = sheet2.getRow(2);
+ assertNotNull(row2_2);
+ cell2_2_1 = row2_2.getCell(1);
+ assertNotNull(cell2_2_1);
+ assertEquals("value 2_2_1", cell2_2_1.getStringCellValue());
+ // Verify sheet 3
+ sheet3 = xssfWb3.getSheetAt(2);
+ assertEquals("S3", sheet3.getSheetName());
+ assertEquals(1, sheet3.getPhysicalNumberOfRows());
+ row3_1 = sheet3.getRow(1);
+ assertNotNull(row3_1);
+ cell3_1_1 = row3_1.getCell(1);
+ assertNotNull(cell3_1_1);
+ assertEquals("value 3_1_1", cell3_1_1.getStringCellValue());
+ }
+ }
+ }
+ }
}
@Test
void sheetdataWriter() throws IOException{
- SXSSFWorkbook wb = new SXSSFWorkbook();
- SXSSFSheet sh = wb.createSheet();
- SheetDataWriter wr = sh.getSheetDataWriter();
- assertSame(wr.getClass(), SheetDataWriter.class);
- File tmp = wr.getTempFile();
- assertStartsWith(tmp.getName(), "poi-sxssf-sheet");
- assertEndsWith(tmp.getName(), ".xml");
- assertTrue(wb.dispose());
- wb.close();
-
- wb = new SXSSFWorkbook();
- wb.setCompressTempFiles(true);
- sh = wb.createSheet();
- wr = sh.getSheetDataWriter();
- assertSame(wr.getClass(), GZIPSheetDataWriter.class);
- tmp = wr.getTempFile();
- assertStartsWith(tmp.getName(), "poi-sxssf-sheet-xml");
- assertEndsWith(tmp.getName(), ".gz");
- assertTrue(wb.dispose());
- wb.close();
+ try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
+ SXSSFSheet sh = wb.createSheet();
+ SheetDataWriter wr = sh.getSheetDataWriter();
+ assertSame(wr.getClass(), SheetDataWriter.class);
+ File tmp = wr.getTempFile();
+ assertStartsWith(tmp.getName(), "poi-sxssf-sheet");
+ assertEndsWith(tmp.getName(), ".xml");
+ assertTrue(wb.dispose());
+ }
+
+ try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
+ wb.setCompressTempFiles(true);
+ SXSSFSheet sh = wb.createSheet();
+ SheetDataWriter wr = sh.getSheetDataWriter();
+ assertSame(wr.getClass(), GZIPSheetDataWriter.class);
+ File tmp = wr.getTempFile();
+ assertStartsWith(tmp.getName(), "poi-sxssf-sheet-xml");
+ assertEndsWith(tmp.getName(), ".gz");
+ assertTrue(wb.dispose());
+ }
//Test escaping of Unicode control characters
- wb = new SXSSFWorkbook();
- wb.createSheet("S1").createRow(0).createCell(0).setCellValue("value\u0019");
- XSSFWorkbook xssfWorkbook = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb);
- Cell cell = xssfWorkbook.getSheet("S1").getRow(0).getCell(0);
- assertEquals("value?", cell.getStringCellValue());
-
- assertTrue(wb.dispose());
- wb.close();
- xssfWorkbook.close();
+ try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
+ wb.createSheet("S1").createRow(0).createCell(0).setCellValue("value\u0019");
+ try (XSSFWorkbook xssfWorkbook = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb)) {
+ Cell cell = xssfWorkbook.getSheet("S1").getRow(0).getCell(0);
+ assertEquals("value?", cell.getStringCellValue());
+ assertTrue(wb.dispose());
+ }
+ }
}
@Test
void gzipSheetdataWriter() throws IOException {
- SXSSFWorkbook wb = new SXSSFWorkbook();
- wb.setCompressTempFiles(true);
+ try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
+ wb.setCompressTempFiles(true);
- final int rowNum = 1000;
- final int sheetNum = 5;
- populateData(wb, 1000, 5);
+ final int rowNum = 1000;
+ final int sheetNum = 5;
+ populateData(wb);
+
+ try (XSSFWorkbook xwb = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb)) {
+ for (int i = 0; i < sheetNum; i++) {
+ Sheet sh = xwb.getSheetAt(i);
+ assertEquals("sheet" + i, sh.getSheetName());
+ for (int j = 0; j < rowNum; j++) {
+ Row row = sh.getRow(j);
+ assertNotNull(row, "row[" + j + "]");
+ Cell cell1 = row.getCell(0);
+ assertEquals(new CellReference(cell1).formatAsString(), cell1.getStringCellValue());
- XSSFWorkbook xwb = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb);
- for(int i = 0; i < sheetNum; i++){
- Sheet sh = xwb.getSheetAt(i);
- assertEquals("sheet" + i, sh.getSheetName());
- for(int j = 0; j < rowNum; j++){
- Row row = sh.getRow(j);
- assertNotNull(row, "row[" + j + "]");
- Cell cell1 = row.getCell(0);
- assertEquals(new CellReference(cell1).formatAsString(), cell1.getStringCellValue());
+ Cell cell2 = row.getCell(1);
+ assertEquals(i, (int) cell2.getNumericCellValue());
- Cell cell2 = row.getCell(1);
- assertEquals(i, (int)cell2.getNumericCellValue());
+ Cell cell3 = row.getCell(2);
+ assertEquals(j, (int) cell3.getNumericCellValue());
+ }
+ }
- Cell cell3 = row.getCell(2);
- assertEquals(j, (int)cell3.getNumericCellValue());
+ assertTrue(wb.dispose());
}
}
-
- assertTrue(wb.dispose());
- xwb.close();
- wb.close();
}
- private static void assertWorkbookDispose(SXSSFWorkbook wb)
- {
- populateData(wb, 1000, 5);
-
- for (Sheet sheet : wb) {
- SXSSFSheet sxSheet = (SXSSFSheet) sheet;
- assertTrue(sxSheet.getSheetDataWriter().getTempFile().exists());
- }
-
- assertTrue(wb.dispose());
-
- for (Sheet sheet : wb) {
- SXSSFSheet sxSheet = (SXSSFSheet) sheet;
- assertFalse(sxSheet.getSheetDataWriter().getTempFile().exists());
- }
- }
-
- private static void populateData(Workbook wb, final int rowNum, final int sheetNum) {
- for(int i = 0; i < sheetNum; i++){
+ private static void populateData(Workbook wb) {
+ for(int i = 0; i < 5; i++){
Sheet sh = wb.createSheet("sheet" + i);
- for(int j = 0; j < rowNum; j++){
+ for(int j = 0; j < 1000; j++){
Row row = sh.createRow(j);
Cell cell1 = row.createCell(0);
cell1.setCellValue(new CellReference(cell1).formatAsString());
@@ -330,28 +308,40 @@ public final class TestSXSSFWorkbook ext
}
}
- @Test
- void workbookDispose() throws IOException {
- SXSSFWorkbook wb1 = new SXSSFWorkbook();
- // the underlying writer is SheetDataWriter
- assertWorkbookDispose(wb1);
- wb1.close();
-
- SXSSFWorkbook wb2 = new SXSSFWorkbook();
- wb2.setCompressTempFiles(true);
- // the underlying writer is GZIPSheetDataWriter
- assertWorkbookDispose(wb2);
- wb2.close();
+ @ParameterizedTest
+ @ValueSource(booleans = {false, true})
+ void workbookDispose(boolean compressTempFiles) throws IOException {
+ try (SXSSFWorkbook wb = new SXSSFWorkbook()) {
+ // compressTempFiles == false: the underlying writer is SheetDataWriter
+ // compressTempFiles == true: the underlying writer is GZIPSheetDataWriter
+ wb.setCompressTempFiles(compressTempFiles);
+
+ populateData(wb);
+
+ for (Sheet sheet : wb) {
+ SXSSFSheet sxSheet = (SXSSFSheet) sheet;
+ assertTrue(sxSheet.getSheetDataWriter().getTempFile().exists());
+ }
+
+ assertTrue(wb.dispose());
+
+ for (Sheet sheet : wb) {
+ SXSSFSheet sxSheet = (SXSSFSheet) sheet;
+ assertFalse(sxSheet.getSheetDataWriter().getTempFile().exists());
+ }
+ }
}
@Test
void bug53515() throws Exception {
try (Workbook wb1 = new SXSSFWorkbook(10)) {
populateWorkbook(wb1);
- saveTwice(wb1);
+ assertDoesNotThrow(() -> wb1.write(NULL_OUTPUT_STREAM));
+ assertDoesNotThrow(() -> wb1.write(NULL_OUTPUT_STREAM));
try (Workbook wb2 = new XSSFWorkbook()) {
populateWorkbook(wb2);
- saveTwice(wb2);
+ assertDoesNotThrow(() -> wb2.write(NULL_OUTPUT_STREAM));
+ assertDoesNotThrow(() -> wb2.write(NULL_OUTPUT_STREAM));
}
}
}
@@ -405,18 +395,6 @@ public final class TestSXSSFWorkbook ext
}
}
- private static void saveTwice(Workbook wb) throws Exception {
- for (int i = 0; i < 2; i++) {
- try {
- wb.write(NULL_OUTPUT_STREAM);
- } catch (Exception e) {
- throw new Exception("ERROR: failed on " + (i + 1)
- + "th time calling " + wb.getClass().getName()
- + ".write() with exception " + e.getMessage(), e);
- }
- }
- }
-
@Test
void closeDoesNotModifyWorkbook() throws IOException {
final String filename = "SampleSS.xlsx";
@@ -460,10 +438,10 @@ public final class TestSXSSFWorkbook ext
char[] useless = new char[32767];
Arrays.fill(useless, ' ');
- for (int row = 0; row < 1; row++) {
+ for (int row = 0; row < 10; row++) {
Row r = s.createRow(row);
for (int col = 0; col < 10; col++) {
- char[] prefix = Integer.toHexString(row * 1000 + col).toCharArray();
+ char[] prefix = Integer.toHexString(row * 10 + col).toCharArray();
Arrays.fill(useless, 0, 10, ' ');
System.arraycopy(prefix, 0, useless, 0, prefix.length);
String ul = new String(useless);
@@ -528,8 +506,8 @@ public final class TestSXSSFWorkbook ext
}
}
+ @Override
@Disabled("not implemented")
- @Test
- void changeSheetNameWithSharedFormulas() {
+ protected void changeSheetNameWithSharedFormulas() {
}
}
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=1892683&r1=1892682&r2=1892683&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 Sat Aug 28 23:48:48 2021
@@ -100,7 +100,6 @@ import org.apache.poi.ss.util.CellRangeA
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.ss.util.CellUtil;
import org.apache.poi.util.LocaleUtil;
-import org.apache.commons.io.output.NullOutputStream;
import org.apache.poi.util.TempFile;
import org.apache.poi.util.XMLHelper;
import org.apache.poi.xssf.SXSSFITestDataProvider;
@@ -117,7 +116,14 @@ import org.junit.jupiter.params.Paramete
import org.junit.jupiter.params.provider.CsvSource;
import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.provider.ValueSource;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.*;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCalcCell;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedNames;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTMergeCell;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTMergeCells;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellFormulaType;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTFontImpl;
import org.xml.sax.InputSource;
import org.xml.sax.SAXParseException;
@@ -2714,6 +2720,7 @@ public final class TestXSSFBugs extends
CellStyle style = wb.createCellStyle();
style.setRotation((short) -90);
cell.setCellStyle(style);
+ assertEquals(180, style.getRotation());
XSSFTestDataSamples.writeOut(wb, fileName);
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFFont.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFFont.java?rev=1892683&r1=1892682&r2=1892683&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFFont.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFFont.java Sat Aug 28 23:48:48 2021
@@ -259,11 +259,11 @@ public final class TestXSSFFont extends
xssfFont.setUnderline(Font.U_DOUBLE);
assertEquals(ctFont.sizeOfUArray(),1);
- assertEquals(STUnderlineValues.DOUBLE,ctFont.getUArray(0).getVal());
+ assertSame(STUnderlineValues.DOUBLE,ctFont.getUArray(0).getVal());
xssfFont.setUnderline(FontUnderline.DOUBLE_ACCOUNTING);
assertEquals(ctFont.sizeOfUArray(),1);
- assertEquals(STUnderlineValues.DOUBLE_ACCOUNTING,ctFont.getUArray(0).getVal());
+ assertSame(STUnderlineValues.DOUBLE_ACCOUNTING,ctFont.getUArray(0).getVal());
}
@Test
@@ -342,7 +342,7 @@ public final class TestXSSFFont extends
assertEquals(FontScheme.MAJOR,font.getScheme());
font.setScheme(FontScheme.NONE);
- assertEquals(STFontScheme.NONE,ctFont.getSchemeArray(0).getVal());
+ assertSame(STFontScheme.NONE,ctFont.getSchemeArray(0).getVal());
}
@Test
@@ -356,17 +356,15 @@ public final class TestXSSFFont extends
assertEquals(Font.SS_NONE,font.getTypeOffset());
font.setTypeOffset(XSSFFont.SS_SUPER);
- assertEquals(STVerticalAlignRun.SUPERSCRIPT,ctFont.getVertAlignArray(0).getVal());
+ assertSame(STVerticalAlignRun.SUPERSCRIPT,ctFont.getVertAlignArray(0).getVal());
}
// store test from TestSheetUtil here as it uses XSSF
@Test
void testCanComputeWidthXSSF() throws IOException {
try (Workbook wb = new XSSFWorkbook()) {
-
// cannot check on result because on some machines we get back false here!
- SheetUtil.canComputeColumnWidth(wb.getFontAt(0));
-
+ assertDoesNotThrow(() -> SheetUtil.canComputeColumnWidth(wb.getFontAt(0)));
}
}
@@ -377,7 +375,7 @@ public final class TestXSSFFont extends
font.setFontName("some non existing font name");
// Even with invalid fonts we still get back useful data most of the time...
- SheetUtil.canComputeColumnWidth(font);
+ assertDoesNotThrow(() -> SheetUtil.canComputeColumnWidth(font));
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org