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 [1/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/...

Author: kiwiwings
Date: Fri May 14 00:37:50 2021
New Revision: 1889871

URL: http://svn.apache.org/viewvc?rev=1889871&view=rev
Log:
#65304 - Add commons-io as a dependency

Removed:
    poi/trunk/poi/src/main/java/org/apache/poi/hpsf/MarkUnsupportedException.java
    poi/trunk/poi/src/main/java/org/apache/poi/util/BoundedInputStream.java
    poi/trunk/poi/src/test/java/org/apache/poi/util/NullOutputStream.java
    poi/trunk/poi/src/test/java/org/apache/poi/util/NullPrintStream.java
Modified:
    poi/site/src/documentation/content/xdocs/changes.xml
    poi/site/src/documentation/content/xdocs/components/index.xml
    poi/trunk/build.gradle
    poi/trunk/build.xml
    poi/trunk/maven/poi.pom
    poi/trunk/osgi/README.md
    poi/trunk/osgi/pom.xml
    poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiExtractorsIT.java
    poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSlideShowIT.java
    poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSpreadsheetIT.java
    poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hpsf/WriteAuthorAndTitle.java
    poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawing.java
    poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CustomXMLMapping.java
    poi/trunk/poi-examples/src/test/java/org/apache/poi/integration/TestXLSX2CSV.java
    poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java
    poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HPSFFileHandler.java
    poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java
    poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/POIFSFileHandler.java
    poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SlideShowHandler.java
    poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SpreadsheetHandler.java
    poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFBFileHandler.java
    poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFFileHandler.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePartOutputStream.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java
    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/SignatureLine.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/poifs/crypt/dsig/services/TSPTimeStampService.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/draw/SVGRenderExtension.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFObjectShape.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/util/DummyFormat.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xslf/util/PPTX2PNG.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFChartSheet.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
    poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ooxml/TestPOIXMLDocument.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/OpenXML4JTestDataSamples.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestPackage.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestPackageCoreProperties.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestRelationships.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/ZipFileAssert.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/compliance/TestOPCComplianceCoreProperties.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/internal/TestContentTypeManager.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/internal/marshallers/TestZipPackagePropertiesMarshaller.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/tests/TestAgileEncryptionParameters.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/tests/TestDecryptor.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/tests/TestEncryptor.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/tests/TestHxxFEncryption.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/sl/tests/TestOleShape.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/sl/tests/TestSlide.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/sl/tests/TestTable.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/usermodel/TestEmbedOLEPackage.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/TestXSLFBugs.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/XSLFTestDataSamples.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXMLSlideShow.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFExamples.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xslf/usermodel/TestXSLFPictureShape.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/DeferredSXSSFITestDataProvider.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/SXSSFITestDataProvider.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/TestXSSFMemoryLeak.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.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/TestSXSSFWorkbook.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbookWithCustomZipEntrySource.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestUnfixedBugs.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/TestXSSFPicture.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFVMLDrawing.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/util/TestEvilUnclosedBRFixingInputStream.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/XWPFTestDataSamples.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestChangeTracking.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java
    poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/HDGFLZW.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emf/HemfFill.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/hmef/CompressedRTF.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/EMF.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/blip/Metafile.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/blip/WMF.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/PPTXMLDump.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideIdListing.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowRecordDumper.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/UserEditAndPersistListing.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/model/textproperties/TextPropCollection.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/ColorSchemeAtom.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/CurrentUserAtom.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/DocumentAtom.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/HSLFEscherClientDataRecord.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/PersistPtrHolder.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/TextRulerAtom.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/hslf/record/TxMasterStyleAtom.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFObjectData.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFObjectShape.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFSlideShow.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hsmf/datatypes/PropertiesChunk.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwmf/record/HwmfEscape.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwmf/usermodel/HwmfEmbeddedIterator.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/dev/HWPFLister.java
    poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hwpf/usermodel/Picture.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hdgf/dev/TestVSDDumper.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hemf/usermodel/TestHemfPicture.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hmef/TestHMEFMessage.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hmef/dev/TestHMEFDumper.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hmef/extractor/TestHMEFContentsExtractor.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/HSLFTestDataSamples.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/TestPOIDocumentScratchpad.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/TestReWrite.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/TestReWriteSanity.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSLWTListing.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/extractor/TestExtractor.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestMovieShape.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestOleEmbedding.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSetBoldItalic.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestShapes.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlideMaster.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlides.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTable.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTextRunReWrite.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestAnimationInfoAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCString.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestColorSchemeAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000Atom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCurrentUserAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentEncryption.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExControl.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlink.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlinkAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExMediaAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExObjListAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjStg.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExVideoContainer.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestFontCollection.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersContainer.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestInteractiveInfo.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestInteractiveInfoAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestNotesAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestSlideAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestSlidePersistAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestStyleTextPropAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestTextBytesAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestTextCharsAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestTextHeaderAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestTextRulerAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestTextSpecInfoAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestTxInteractiveInfoAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestUserEditAtom.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestHSLFSlideShow.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestRichTextRun.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestTable.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestTextShape.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hsmf/TestExtractEmbeddedMSG.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hsmf/TestFileWithAttachmentsRead.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hsmf/TestFixedSizedProperties.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf/HWPFTestCase.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf/HWPFTestDataSamples.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf/dev/TestHWPFLister.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf/model/TestSavedByTable.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf/sprm/TestSprms.java
    poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hwpf/usermodel/TestHWPFWrite.java
    poi/trunk/poi/build.gradle
    poi/trunk/poi/src/main/java/org/apache/poi/POIDocument.java
    poi/trunk/poi/src/main/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
    poi/trunk/poi/src/main/java/org/apache/poi/ddf/EscherMetafileBlip.java
    poi/trunk/poi/src/main/java/org/apache/poi/hpsf/HPSFPropertiesOnlyDocument.java
    poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Property.java
    poi/trunk/poi/src/main/java/org/apache/poi/hpsf/PropertySet.java
    poi/trunk/poi/src/main/java/org/apache/poi/hpsf/PropertySetFactory.java
    poi/trunk/poi/src/main/java/org/apache/poi/hpsf/Section.java
    poi/trunk/poi/src/main/java/org/apache/poi/hpsf/SummaryInformation.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/dev/ReSave.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/EscherAggregate.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/FilePassRecord.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/RecordInputStream.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/record/SubRecord.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFCombobox.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFShape.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFTextbox.java
    poi/trunk/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.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/crypt/cryptoapi/CryptoAPIDocumentOutputStream.java
    poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/cryptoapi/CryptoAPIEncryptor.java
    poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardDecryptor.java
    poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/DocumentOutputStream.java
    poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/EntryUtils.java
    poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/Ole10Native.java
    poi/trunk/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java
    poi/trunk/poi/src/main/java/org/apache/poi/poifs/macros/VBAMacroReader.java
    poi/trunk/poi/src/main/java/org/apache/poi/sl/draw/BitmapImageRenderer.java
    poi/trunk/poi/src/main/java/org/apache/poi/sl/usermodel/ObjectShape.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
    poi/trunk/poi/src/main/java/org/apache/poi/util/GenericRecordJsonWriter.java
    poi/trunk/poi/src/main/java/org/apache/poi/util/GenericRecordXmlWriter.java
    poi/trunk/poi/src/main/java/org/apache/poi/util/IOUtils.java
    poi/trunk/poi/src/main/java/org/apache/poi/util/LZWDecompresser.java
    poi/trunk/poi/src/main/java/org/apache/poi/util/RLEDecompressingInputStream.java
    poi/trunk/poi/src/test/java/org/apache/poi/POIDataSamples.java
    poi/trunk/poi/src/test/java/org/apache/poi/TestPOIDocumentMain.java
    poi/trunk/poi/src/test/java/org/apache/poi/ddf/TestEscherBlipRecord.java
    poi/trunk/poi/src/test/java/org/apache/poi/ddf/TestEscherDump.java
    poi/trunk/poi/src/test/java/org/apache/poi/hpsf/TestVariantSupport.java
    poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestBasic.java
    poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestEmptyProperties.java
    poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestHPSFBugs.java
    poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestMetaDataIPI.java
    poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestReadAllFiles.java
    poi/trunk/poi/src/test/java/org/apache/poi/hpsf/basic/TestWrite.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/HSSFTestDataSamples.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffDrawingToXml.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestBiffViewer.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestEFBiffViewer.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestFormulaViewer.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestReSave.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/dev/TestRecordLister.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/eventmodel/TestEventRecordFactory.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/model/TestDrawingAggregate.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/model/TestDrawingShapes.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/model/TestEscherRecordFactory.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/record/TestDConRefRecord.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/record/TestDrawingRecord.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/record/TestLbsDataSubRecord.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/record/TestRecordFactory.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/record/TestSSTRecord.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/record/common/TestUnicodeString.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestDataValidation.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestEscherGraphics.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPicture.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestOLE2Embeding.java
    poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestPOIFSProperties.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/crypt/TestXorEncryption.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/dev/TestPOIFSDump.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestDocument.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestDocumentOutputStream.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestEmptyDocument.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestEntryUtils.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestFileSystemBugs.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestOle10Native.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestPOIFSFileSystem.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestPOIFSStream.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/filesystem/TestPropertySorter.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/property/TestDirectoryProperty.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/property/TestDocumentProperty.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/property/TestPropertyTable.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/property/TestRootProperty.java
    poi/trunk/poi/src/test/java/org/apache/poi/poifs/storage/RawDataUtil.java
    poi/trunk/poi/src/test/java/org/apache/poi/sl/usermodel/BaseTestSlideShow.java
    poi/trunk/poi/src/test/java/org/apache/poi/sl/usermodel/BaseTestSlideShowFactory.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/BaseTestPicture.java
    poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestWorkbook.java
    poi/trunk/poi/src/test/java/org/apache/poi/ss/util/NumberRenderingSpreadsheetGenerator.java
    poi/trunk/poi/src/test/java/org/apache/poi/ss/util/TestCellRangeAddress.java
    poi/trunk/poi/src/test/java/org/apache/poi/ss/util/TestDateFormatConverter.java
    poi/trunk/poi/src/test/java/org/apache/poi/util/TestHexDump.java
    poi/trunk/poi/src/test/java/org/apache/poi/util/TestIOUtils.java
    poi/trunk/poi/src/test/java/org/apache/poi/util/TestLittleEndianStreams.java
    poi/trunk/poi/src/test/java/org/apache/poi/util/TestRLEDecompressingInputStream.java
    poi/trunk/sonar/main/pom.xml

Modified: poi/site/src/documentation/content/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/changes.xml?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/changes.xml (original)
+++ poi/site/src/documentation/content/xdocs/changes.xml Fri May 14 00:37:50 2021
@@ -82,6 +82,7 @@
             <summary-item>XDDF - bug fixes</summary-item>
             <summary-item>Upgrade Batik dependency to 1.14</summary-item>
             <summary-item>Upgrade XMLSec dependency to 2.2.2</summary-item>
+            <summary-item>Add commons-io 2.8.0 as a dependency</summary-item>
         </summary>
         <actions>
             <action type="fix" fixes-bug="github-221" context="XSLF">XSLFTable - revert addRow to behaviour before 4.1.2</action>
@@ -98,6 +99,7 @@
             <action type="fix" fixes-bug="65214" context="OOXML">Document signed by POI reported as 'partially' signed</action>
             <action type="fix" fixes-bug="65085" context="HSLF">LineRect shall throw more specific exceptions</action>
             <action type="fix" fixes-bug="64844" context="SL_Common">Incorrect sizes of images in SVG</action>
+            <action type="add" fixes-bug="65304" context="POI_Overall">Add commons-io as a dependency</action>
         </actions>
     </release>
 

Modified: poi/site/src/documentation/content/xdocs/components/index.xml
URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/components/index.xml?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/components/index.xml (original)
+++ poi/site/src/documentation/content/xdocs/components/index.xml Fri May 14 00:37:50 2021
@@ -294,7 +294,8 @@
           <td><a href="https://search.maven.org/#artifactdetails|org.slf4j|jcl-over-slf4j|1.7.30|jar">jcl-over-slf4j (commons-logging replacement)</a>,
               <a href="https://search.maven.org/#artifactdetails|commons-codec|commons-codec|1.15|jar">commons-codec</a>,
               <a href="https://search.maven.org/#artifactdetails|org.apache.commons|commons-collections4|4.4|jar">commons-collections</a>,
-              <a href="https://search.maven.org/#artifactdetails|org.apache.commons|commons-math3|3.6.1|jar">commons-math</a>
+              <a href="https://search.maven.org/#artifactdetails|org.apache.commons|commons-math3|3.6.1|jar">commons-math3</a>
+              <a href="https://search.maven.org/#artifactdetails|commons-io|commons-io|2.8.0|jar">commons-io</a>
           </td>
           <td>poi-version-yyyymmdd.jar</td>
         </tr>
@@ -349,7 +350,8 @@
       <p>&nbsp;</p>
       <note>
         Apache commons-math3 and commons-compress were added as a dependency in POI 4.0.0.<br/>
-        Zaxxer SparseBitSet was added as a dependency in POI 4.1.2
+        Zaxxer SparseBitSet was added as a dependency in POI 4.1.2<br/>
+        Apache commons-io was added as a dependency in POI 5.0.1
       </note>
       <p>
         poi-ooxml requires poi-ooxml-lite. This is a substantially smaller

Modified: poi/trunk/build.gradle
URL: http://svn.apache.org/viewvc/poi/trunk/build.gradle?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/build.gradle (original)
+++ poi/trunk/build.gradle Fri May 14 00:37:50 2021
@@ -100,6 +100,7 @@ subprojects {
         bouncyCastleVersion = '1.68'
         commonsCodecVersion = '1.15'
         commonsCompressVersion = '1.20'
+        commonsIoVersion = '2.8.0'
         commonsMathVersion = '3.6.1'
         junitVersion = '5.7.1'
         log4jVersion = '2.14.0'
@@ -117,6 +118,8 @@ subprojects {
 
     tasks.withType(JavaCompile) {
         options.encoding = 'UTF-8'
+        options.compilerArgs << '-Xlint:unchecked'
+        options.deprecation = true
     }
 
     tasks.withType(Jar) {
@@ -371,6 +374,7 @@ rat {
     excludes.add("**/out/**")
     excludes.add("**/*.iml")
     excludes.add("**/*.log")
+    excludes.add("**/gradle-wrapper.properties")
     excludes.add("**/main/java/org/apache/poi/**/*-chart-data.txt")
     excludes.add("poi/src/main/resources/org/apache/poi/sl/draw/geom/presetShapeDefinitions.xml")
     excludes.add("poi-ooxml/src/main/resources/org/apache/poi/xslf/usermodel/notesMaster.xml")

Modified: poi/trunk/build.xml
URL: http://svn.apache.org/viewvc/poi/trunk/build.xml?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/build.xml (original)
+++ poi/trunk/build.xml Fri May 14 00:37:50 2021
@@ -266,6 +266,7 @@ under the License.
     <dependency prefix="main.commons-codec" artifact="commons-codec:commons-codec:1.15" usage="main"/>
     <dependency prefix="main.commons-collections4" artifact="org.apache.commons:commons-collections4:4.4" usage="main"/>
     <dependency prefix="main.commons-math3" artifact="org.apache.commons:commons-math3:3.6.1" usage="main"/>
+    <dependency prefix="main.commons-io" artifact="commons-io:commons-io:2.8.0" usage="main"/>
     <dependency prefix="main.com.zaxxer" artifact="com.zaxxer:SparseBitSet:1.2" usage="main"/>
     <dependency prefix="main.log4j-api" artifact="org.apache.logging.log4j:log4j-api:2.14.0" usage="main"/>
 
@@ -430,6 +431,7 @@ under the License.
         <pathelement location="${main.commons-codec.jar}"/>
         <pathelement location="${main.commons-collections4.jar}"/>
         <pathelement location="${main.commons-math3.jar}"/>
+        <pathelement location="${main.commons-io.jar}"/>
         <pathelement location="${main.com.zaxxer.jar}"/>
         <pathelement location="${main.log4j-api.jar}"/>
     </path>
@@ -737,6 +739,7 @@ under the License.
                     <available file="${dsig.xmlsec.jar}"/>
                     <available file="${main.commons-collections4.jar}"/>
                     <available file="${main.commons-math3.jar}"/>
+                    <available file="${main.commons-io.jar}"/>
                     <available file="${main.com.zaxxer.jar}"/>
 
                     <!-- we had some CI failures when the extracted files for JaCoCo were missing somehow... -->
@@ -778,6 +781,7 @@ under the License.
         <downloadfile src="${jacoco.url}" dest="${jacoco.zip}"/>
         <downloadfile src="${main.commons-collections4.url}" dest="${main.commons-collections4.jar}"/>
         <downloadfile src="${main.commons-math3.url}" dest="${main.commons-math3.jar}"/>
+        <downloadfile src="${main.commons-io.url}" dest="${main.commons-io.jar}"/>
         <downloadfile src="${main.com.zaxxer.url}" dest="${main.com.zaxxer.jar}"/>
         <unzip src="${jacoco.zip}" dest="${util.lib}">
             <patternset>
@@ -2328,6 +2332,7 @@ under the License.
                     <include name="commons-codec-*.jar"/>
                     <include name="commons-collections4-*.jar"/>
                     <include name="commons-math3-*.jar"/>
+                    <include name="commons-io-*.jar"/>
                     <include name="log4j-api-*.jar"/>
                     <include name="SparseBitSet-*.jar"/>
                 </fileset>
@@ -2687,6 +2692,7 @@ under the License.
             <auxClasspath path="${ooxml.commons-compress.jar}" />
             <auxClasspath path="${main.commons-collections4.jar}" />
             <auxClasspath path="${main.commons-math3.jar}" />
+            <auxClasspath path="${main.commons-io.jar}" />
             <auxClasspath path="${main.commons-codec.jar}" />
             <auxClasspath path="${main.commons-logging.jar}" />
             <auxClasspath path="${main.log4j-api.jar}" />

Modified: poi/trunk/maven/poi.pom
URL: http://svn.apache.org/viewvc/poi/trunk/maven/poi.pom?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/maven/poi.pom (original)
+++ poi/trunk/maven/poi.pom Fri May 14 00:37:50 2021
@@ -77,6 +77,11 @@
             <version>3.6.1</version>
         </dependency>
         <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.8.0</version>
+        </dependency>
+        <dependency>
             <groupId>com.zaxxer</groupId>
             <artifactId>SparseBitSet</artifactId>
             <version>1.2</version>

Modified: poi/trunk/osgi/README.md
URL: http://svn.apache.org/viewvc/poi/trunk/osgi/README.md?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/osgi/README.md (original)
+++ poi/trunk/osgi/README.md Fri May 14 00:37:50 2021
@@ -9,6 +9,7 @@ The bundle embeds all the jars from lib/
 - SparseBitSet
 - curvesapi
 - commons-math3
+- commons-io
 - commons-compress
 - commons-collections4
 - commons-codec

Modified: poi/trunk/osgi/pom.xml
URL: http://svn.apache.org/viewvc/poi/trunk/osgi/pom.xml?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/osgi/pom.xml (original)
+++ poi/trunk/osgi/pom.xml Fri May 14 00:37:50 2021
@@ -101,6 +101,7 @@
                             SparseBitSet,
                             curvesapi,
                             commons-math3,
+                            commons-io,
                             commons-compress,
                             commons-collections4,
                             commons-codec,

Modified: poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiExtractorsIT.java
URL: http://svn.apache.org/viewvc/poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiExtractorsIT.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiExtractorsIT.java (original)
+++ poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiExtractorsIT.java Fri May 14 00:37:50 2021
@@ -36,7 +36,7 @@ import org.ops4j.pax.exam.spi.reactors.P
 
 import java.awt.*;
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 
 import static org.junit.Assert.assertEquals;
 
@@ -57,7 +57,7 @@ public class OSGiExtractorsIT extends Ba
         box.setText("Hello, World!");
         box.setAnchor(new Rectangle(36, 15, 648, 65));
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream();
         ppt.write(out);
         return out.toByteArray();
     }
@@ -66,7 +66,7 @@ public class OSGiExtractorsIT extends Ba
         Sheet s = wb.createSheet("OSGi");
         s.createRow(0).createCell(0).setCellValue("Hello, World!");
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream();
         wb.write(out);
         return out.toByteArray();
 

Modified: poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSlideShowIT.java
URL: http://svn.apache.org/viewvc/poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSlideShowIT.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSlideShowIT.java (original)
+++ poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSlideShowIT.java Fri May 14 00:37:50 2021
@@ -28,7 +28,7 @@ import org.ops4j.pax.exam.spi.reactors.P
 
 import java.awt.*;
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
@@ -75,11 +75,12 @@ public class OSGiSlideShowIT extends Bas
         }
         box2.setAnchor(new Rectangle(36, 80, 648, 400));
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        ppt.write(baos);
-        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-
-        ppt = SlideShowFactory.create(bais);
+        try (UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream()) {
+            ppt.write(baos);
+            try (InputStream bais = baos.toInputStream()) {
+                ppt = SlideShowFactory.create(bais);
+            }
+        }
         assertEquals(1, ppt.getSlides().size());
         slide = (Slide) ppt.getSlides().iterator().next();
         assertEquals(2, slide.getShapes().size());

Modified: poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSpreadsheetIT.java
URL: http://svn.apache.org/viewvc/poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSpreadsheetIT.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSpreadsheetIT.java (original)
+++ poi/trunk/osgi/src/test/java/org/apache/poi/osgi/OSGiSpreadsheetIT.java Fri May 14 00:37:50 2021
@@ -29,7 +29,7 @@ import org.ops4j.pax.exam.spi.reactors.E
 import org.ops4j.pax.exam.spi.reactors.PerClass;
 
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 
 import static org.junit.Assert.assertEquals;
 
@@ -48,11 +48,12 @@ public class OSGiSpreadsheetIT extends B
         s.createRow(0).createCell(0).setCellValue("With OSGi");
         s.createRow(1).createCell(0).setCellFormula("SUM(A1:B3)");
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        wb.write(baos);
-        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-
-        wb = WorkbookFactory.create(bais);
+        try (UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream()) {
+            wb.write(baos);
+            try (InputStream bais = baos.toInputStream()) {
+                wb = WorkbookFactory.create(bais);
+            }
+        }
         assertEquals(1, wb.getNumberOfSheets());
 
         s = wb.getSheet("OSGi");

Modified: poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hpsf/WriteAuthorAndTitle.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hpsf/WriteAuthorAndTitle.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hpsf/WriteAuthorAndTitle.java (original)
+++ poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hpsf/WriteAuthorAndTitle.java Fri May 14 00:37:50 2021
@@ -24,7 +24,6 @@ import java.io.InputStream;
 import java.io.OutputStream;
 
 import org.apache.poi.hpsf.HPSFRuntimeException;
-import org.apache.poi.hpsf.MarkUnsupportedException;
 import org.apache.poi.hpsf.NoPropertySetStreamException;
 import org.apache.poi.hpsf.PropertySet;
 import org.apache.poi.hpsf.PropertySetFactory;
@@ -165,7 +164,7 @@ public final class WriteAuthorAndTitle {
                 de.createDocument(event.getName(), is);
             }
 
-        } catch (MarkUnsupportedException | WritingNotSupportedException | IOException | NoPropertySetStreamException ex) {
+        } catch (WritingNotSupportedException | IOException | NoPropertySetStreamException ex) {
             // According to the definition of the processPOIFSReaderEvent method we cannot pass checked
             // exceptions to the caller.
             throw new HPSFRuntimeException("Could not read file " + event.getPath() + "/" + event.getName(), ex);

Modified: poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawing.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawing.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawing.java (original)
+++ poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/hssf/usermodel/OfficeDrawing.java Fri May 14 00:37:50 2021
@@ -17,11 +17,12 @@
 
 package org.apache.poi.examples.hssf.usermodel;
 
-import java.io.ByteArrayOutputStream;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.hssf.usermodel.HSSFChildAnchor;
 import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
 import org.apache.poi.hssf.usermodel.HSSFFont;
@@ -188,14 +189,11 @@ public final class OfficeDrawing {
 
     }
 
-    private static int loadPicture( String path, HSSFWorkbook wb ) throws IOException
-    {
+    private static int loadPicture( String path, HSSFWorkbook wb ) throws IOException {
         int pictureIndex;
         try (FileInputStream fis = new FileInputStream(path);
-             ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
-            int c;
-            while ((c = fis.read()) != -1)
-                bos.write(c);
+             UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()) {
+            IOUtils.copy(fis, bos);
             pictureIndex = wb.addPicture(bos.toByteArray(), Workbook.PICTURE_TYPE_PNG);
         }
         return pictureIndex;

Modified: poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CustomXMLMapping.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CustomXMLMapping.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CustomXMLMapping.java (original)
+++ poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/CustomXMLMapping.java Fri May 14 00:37:50 2021
@@ -16,8 +16,9 @@
 ==================================================================== */
 package org.apache.poi.examples.xssf.usermodel;
 
-import java.io.ByteArrayOutputStream;
+import java.nio.charset.StandardCharsets;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.xssf.extractor.XSSFExportToXml;
 import org.apache.poi.xssf.usermodel.XSSFMap;
@@ -37,9 +38,9 @@ public final class CustomXMLMapping {
             for (XSSFMap map : wb.getCustomXMLMappings()) {
                 XSSFExportToXml exporter = new XSSFExportToXml(map);
 
-                ByteArrayOutputStream os = new ByteArrayOutputStream();
+                UnsynchronizedByteArrayOutputStream os = new UnsynchronizedByteArrayOutputStream();
                 exporter.exportToXML(os, true);
-                String xml = os.toString("UTF-8");
+                String xml = os.toString(StandardCharsets.UTF_8);
                 System.out.println(xml);
             }
         }

Modified: poi/trunk/poi-examples/src/test/java/org/apache/poi/integration/TestXLSX2CSV.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-examples/src/test/java/org/apache/poi/integration/TestXLSX2CSV.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-examples/src/test/java/org/apache/poi/integration/TestXLSX2CSV.java (original)
+++ poi/trunk/poi-examples/src/test/java/org/apache/poi/integration/TestXLSX2CSV.java Fri May 14 00:37:50 2021
@@ -20,9 +20,10 @@ package org.apache.poi.integration;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
+import java.nio.charset.StandardCharsets;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.examples.xssf.eventusermodel.XLSX2CSV;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackageAccess;
@@ -33,7 +34,7 @@ import org.junit.jupiter.api.Test;
 
 public class TestXLSX2CSV {
 	private PrintStream err;
-	private final ByteArrayOutputStream errorBytes = new ByteArrayOutputStream();
+	private final UnsynchronizedByteArrayOutputStream errorBytes = new UnsynchronizedByteArrayOutputStream();
 
 	@BeforeEach
 	public void setUp() {
@@ -45,13 +46,13 @@ public class TestXLSX2CSV {
 	}
 
 	@AfterEach
-	public void tearDown() throws Exception {
+	public void tearDown() {
 		// restore output-streams again
 		System.setErr(err);
 
 		// Print out found error
 		if (errorBytes.size() > 0) {
-			System.err.println("Had stderr: " + errorBytes.toString("UTF-8"));
+			System.err.println("Had stderr: " + errorBytes.toString(StandardCharsets.UTF_8));
 		}
 	}
 
@@ -60,7 +61,7 @@ public class TestXLSX2CSV {
 		// returns with some System.err
 		XLSX2CSV.main(new String[0]);
 
-		String output = errorBytes.toString("UTF-8");
+		String output = errorBytes.toString(StandardCharsets.UTF_8);
 		assertTrue(output.contains("XLSX2CSV <xlsx file>"), "Had: " + output);
 	}
 
@@ -75,7 +76,7 @@ public class TestXLSX2CSV {
 
 	@Test
 	public void testSampleFile() throws Exception {
-		final ByteArrayOutputStream outputBytes = new ByteArrayOutputStream();
+		final UnsynchronizedByteArrayOutputStream outputBytes = new UnsynchronizedByteArrayOutputStream();
 		PrintStream out = new PrintStream(outputBytes);
 
 		// The package open is instantaneous, as it should be.
@@ -84,17 +85,17 @@ public class TestXLSX2CSV {
 			xlsx2csv.process();
 		}
 
-		String errorOutput = errorBytes.toString("UTF-8");
+		String errorOutput = errorBytes.toString(StandardCharsets.UTF_8);
 		assertEquals(errorOutput.length(), 0);
 
-		String output = outputBytes.toString("UTF-8");
+		String output = outputBytes.toString(StandardCharsets.UTF_8);
 		assertTrue(output.contains("\"Lorem\",111"), "Had: " + output);
 		assertTrue(output.contains(",\"hello, xssf\",,\"hello, xssf\""), "Had: " + output);
 	}
 
 	@Test
 	public void testMinColumns() throws Exception {
-		final ByteArrayOutputStream outputBytes = new ByteArrayOutputStream();
+		final UnsynchronizedByteArrayOutputStream outputBytes = new UnsynchronizedByteArrayOutputStream();
 		PrintStream out = new PrintStream(outputBytes);
 
 		// The package open is instantaneous, as it should be.
@@ -103,10 +104,10 @@ public class TestXLSX2CSV {
 			xlsx2csv.process();
 		}
 
-		String errorOutput = errorBytes.toString("UTF-8");
+		String errorOutput = errorBytes.toString(StandardCharsets.UTF_8);
 		assertEquals(errorOutput.length(), 0);
 
-		String output = outputBytes.toString("UTF-8");
+		String output = outputBytes.toString(StandardCharsets.UTF_8);
 		assertTrue(output.contains("\"Lorem\",111,,,"), "Had: " + output);
 		assertTrue(output.contains(",\"hello, xssf\",,\"hello, xssf\","), "Had: " + output);
 	}

Modified: poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java (original)
+++ poi/trunk/poi-excelant/src/test/java/org/apache/poi/ss/excelant/TestBuildFile.java Fri May 14 00:37:50 2021
@@ -28,7 +28,7 @@ import java.io.File;
 import java.io.PrintStream;
 
 import org.apache.poi.POIDataSamples;
-import org.apache.poi.util.NullPrintStream;
+import org.apache.commons.io.output.NullPrintStream;
 import org.apache.tools.ant.BuildEvent;
 import org.apache.tools.ant.BuildListener;
 import org.apache.tools.ant.Project;

Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HPSFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HPSFFileHandler.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HPSFFileHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HPSFFileHandler.java Fri May 14 00:37:50 2021
@@ -21,7 +21,6 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.fail;
 import static org.junit.jupiter.api.Assumptions.assumeFalse;
 
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -33,6 +32,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.examples.hpsf.CopyCompare;
 import org.apache.poi.hpsf.DocumentSummaryInformation;
 import org.apache.poi.hpsf.HPSFPropertiesOnlyDocument;
@@ -104,11 +104,11 @@ class HPSFFileHandler extends POIFSFileH
     public void handleAdditional(File file) throws Exception {
         assumeFalse(EXCLUDES_HANDLE_ADD.contains(file.getParentFile().getName()+"/"+file.getName()));
 
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
         PrintStream psNew = new PrintStream(bos, true, "ISO-8859-1");
         CopyCompare.setOut(psNew);
         CopyCompare.main(new String[]{file.getAbsolutePath(), copyOutput.get().getAbsolutePath()});
-        assertEquals("Equal" + NL, bos.toString(StandardCharsets.UTF_8.name()));
+        assertEquals("Equal" + NL, bos.toString(StandardCharsets.UTF_8));
     }
 
 

Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/HSSFFileHandler.java Fri May 14 00:37:50 2021
@@ -33,7 +33,7 @@ import org.apache.poi.hssf.usermodel.HSS
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.util.NullPrintStream;
+import org.apache.commons.io.output.NullPrintStream;
 import org.junit.jupiter.api.Test;
 
 class HSSFFileHandler extends SpreadsheetHandler {

Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/POIFSFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/POIFSFileHandler.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/POIFSFileHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/POIFSFileHandler.java Fri May 14 00:37:50 2021
@@ -18,13 +18,12 @@ package org.apache.poi.stress;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.POIDocument;
 import org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
@@ -58,13 +57,14 @@ class POIFSFileHandler extends AbstractF
 	}
 
 	protected void handlePOIDocument(POIDocument doc) throws Exception {
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		doc.write(out);
+		try (UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream()) {
+            doc.write(out);
 
-		ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
-		POIFSFileSystem fs = new POIFSFileSystem(in);
-		handlePOIFSFileSystem(fs);
-		fs.close();
+            try (InputStream in = out.toInputStream();
+                POIFSFileSystem fs = new POIFSFileSystem(in)) {
+                handlePOIFSFileSystem(fs);
+            }
+        }
 	}
 
     // a test-case to test this locally without executing the full TestAllFiles

Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SlideShowHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SlideShowHandler.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SlideShowHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SlideShowHandler.java Fri May 14 00:37:50 2021
@@ -23,11 +23,10 @@ import java.awt.Dimension;
 import java.awt.Graphics2D;
 import java.awt.RenderingHints;
 import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.lang.ref.WeakReference;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.sl.draw.Drawable;
 import org.apache.poi.sl.usermodel.GroupShape;
 import org.apache.poi.sl.usermodel.Notes;
@@ -40,7 +39,6 @@ import org.apache.poi.sl.usermodel.Slide
 import org.apache.poi.sl.usermodel.TextParagraph;
 import org.apache.poi.sl.usermodel.TextRun;
 import org.apache.poi.sl.usermodel.TextShape;
-import org.junit.jupiter.api.Assumptions;
 import org.junit.platform.commons.util.ExceptionUtils;
 
 public abstract class SlideShowHandler extends POIFSFileHandler {
@@ -51,29 +49,18 @@ public abstract class SlideShowHandler e
         readPictures(ss);
 
         // write out the file
-        ByteArrayOutputStream out = writeToArray(ss);
+        UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream();
+        ss.write(out);
 
         readContent(ss);
 
         // read in the written file
-        try (SlideShow<?, ?> read = SlideShowFactory.create(new ByteArrayInputStream(out.toByteArray()))) {
+        try (SlideShow<?, ?> read = SlideShowFactory.create(out.toInputStream())) {
             assertNotNull(read);
             readContent(read);
         }
     }
 
-    private ByteArrayOutputStream writeToArray(SlideShow<?,?> ss) throws IOException {
-        ByteArrayOutputStream stream = new ByteArrayOutputStream();
-        try {
-            ss.write(stream);
-        } finally {
-            stream.close();
-        }
-
-        return stream;
-    }
-
-
     private void readContent(SlideShow<?,?> ss) {
         for (Slide<?,?> s : ss.getSlides()) {
             s.getTitle();

Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SpreadsheetHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SpreadsheetHandler.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SpreadsheetHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/SpreadsheetHandler.java Fri May 14 00:37:50 2021
@@ -18,10 +18,9 @@ package org.apache.poi.stress;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.ss.extractor.EmbeddedData;
 import org.apache.poi.ss.extractor.EmbeddedExtractor;
 import org.apache.poi.ss.usermodel.Cell;
@@ -45,10 +44,10 @@ public abstract class SpreadsheetHandler
 		readContent(wb);
 
 		// write once more
-		ByteArrayOutputStream out = writeToArray(wb);
+		UnsynchronizedByteArrayOutputStream out = writeToArray(wb);
 
 		// read in the written file
-		Workbook read = WorkbookFactory.create(new ByteArrayInputStream(out.toByteArray()));
+		Workbook read = WorkbookFactory.create(out.toInputStream());
 
 		assertNotNull(read);
 
@@ -61,14 +60,9 @@ public abstract class SpreadsheetHandler
 		read.close();
 	}
 
-	private ByteArrayOutputStream writeToArray(Workbook wb) throws IOException {
-		ByteArrayOutputStream stream = new ByteArrayOutputStream();
-		try {
-			wb.write(stream);
-		} finally {
-			stream.close();
-		}
-
+	private UnsynchronizedByteArrayOutputStream writeToArray(Workbook wb) throws IOException {
+		UnsynchronizedByteArrayOutputStream stream = new UnsynchronizedByteArrayOutputStream();
+		wb.write(stream);
 		return stream;
 	}
 

Modified: poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFBFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFBFileHandler.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFBFileHandler.java (original)
+++ poi/trunk/poi-integration/src/test/java/org/apache/poi/stress/XSSFBFileHandler.java Fri May 14 00:37:50 2021
@@ -17,7 +17,6 @@
 package org.apache.poi.stress;
 
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -40,10 +39,8 @@ class XSSFBFileHandler extends AbstractF
 
     @Override
     public void handleFile(InputStream stream, String path) throws Exception {
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        IOUtils.copy(stream, out);
+        byte[] bytes = IOUtils.toByteArray(stream);
 
-        final byte[] bytes = out.toByteArray();
         try (OPCPackage opcPackage = OPCPackage.open(new ByteArrayInputStream(bytes))) {
             testOne(opcPackage);
         }

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=1889871&r1=1889870&r2=1889871&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 Fri May 14 00:37:50 2021
@@ -16,14 +16,13 @@
 ==================================================================== */
 package org.apache.poi.stress;
 
+import static org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assumptions.assumeFalse;
 
 import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -35,6 +34,8 @@ import java.util.Set;
 
 import javax.xml.transform.TransformerException;
 
+import org.apache.commons.io.output.NullPrintStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.examples.ss.ExcelComparator;
 import org.apache.poi.examples.xssf.eventusermodel.FromHowTo;
@@ -50,7 +51,6 @@ import org.apache.poi.poifs.crypt.Encryp
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.NullPrintStream;
 import org.apache.poi.xssf.eventusermodel.XSSFReader;
 import org.apache.poi.xssf.extractor.XSSFExportToXml;
 import org.apache.poi.xssf.usermodel.XSSFMap;
@@ -70,12 +70,12 @@ class XSSFFileHandler extends Spreadshee
 
         // make sure the potentially large byte-array is freed up quickly again
         {
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+            UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream();
             IOUtils.copy(stream, out);
-            ByteArrayInputStream bytes = new ByteArrayInputStream(out.toByteArray());
 
             if (pass != null) {
-                POIFSFileSystem poifs = new POIFSFileSystem(bytes);
+                POIFSFileSystem poifs = new POIFSFileSystem(out.toInputStream());
                 EncryptionInfo ei = new EncryptionInfo(poifs);
                 Decryptor dec = ei.getDecryptor();
                 try {
@@ -91,11 +91,9 @@ class XSSFFileHandler extends Spreadshee
                 IOUtils.copy(is, out);
                 is.close();
                 poifs.close();
-                bytes = new ByteArrayInputStream(out.toByteArray());
             }
-            checkXSSFReader(OPCPackage.open(bytes));
-            bytes.reset();
-            wb = new XSSFWorkbook(bytes);
+            checkXSSFReader(OPCPackage.open(out.toInputStream()));
+            wb = new XSSFWorkbook(out.toInputStream());
         }
 
         // use the combined handler for HSSF/XSSF
@@ -157,9 +155,7 @@ class XSSFFileHandler extends Spreadshee
             TransformerException {
         for (XSSFMap map : wb.getCustomXMLMappings()) {
             XSSFExportToXml exporter = new XSSFExportToXml(map);
-
-            ByteArrayOutputStream os = new ByteArrayOutputStream();
-            exporter.exportToXML(os, true);
+            exporter.exportToXML(NULL_OUTPUT_STREAM, true);
         }
     }
 

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/OPCPackage.java Fri May 14 00:37:50 2021
@@ -898,16 +898,12 @@ public abstract class OPCPackage impleme
 		}
 		// Extract the zip entry content to put it in the part content
 		if (content != null) {
-			try {
-				OutputStream partOutput = addedPart.getOutputStream();
+			try (OutputStream partOutput = addedPart.getOutputStream()) {
 				if (partOutput == null) {
 					return null;
 				}
-
-				partOutput.write(content.toByteArray(), 0, content.size());
-				partOutput.close();
-
-			} catch (IOException ioe) {
+				content.writeTo(partOutput);
+			} catch (IOException ignored) {
 				return null;
 			}
 		} else {

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePart.java Fri May 14 00:37:50 2021
@@ -18,11 +18,11 @@
 package org.apache.poi.openxml4j.opc.internal;
 
 import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
@@ -113,17 +113,15 @@ public final class MemoryPackagePart ext
 
 	@Override
 	public boolean load(InputStream ios) throws InvalidFormatException {
-	   // Grab the data
-	   ByteArrayOutputStream baos = new ByteArrayOutputStream();
-	   try {
+	   try (UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream()) {
+		   // Grab the data
 	      IOUtils.copy(ios, baos);
+		   // Save it
+		   data = baos.toByteArray();
 	   } catch(IOException e) {
 	      throw new InvalidFormatException(e.getMessage());
 	   }
 
-	   // Save it
-	   data = baos.toByteArray();
-
 	   // All done
 	   return true;
 	}

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePartOutputStream.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePartOutputStream.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePartOutputStream.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/MemoryPackagePartOutputStream.java Fri May 14 00:37:50 2021
@@ -17,22 +17,23 @@
 
 package org.apache.poi.openxml4j.opc.internal;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
+
 /**
  * Build an output stream for MemoryPackagePart.
  */
 public final class MemoryPackagePartOutputStream extends OutputStream {
 
-	private MemoryPackagePart _part;
+	private final MemoryPackagePart _part;
 
-	private ByteArrayOutputStream _buff;
+	private final UnsynchronizedByteArrayOutputStream _buff;
 
 	public MemoryPackagePartOutputStream(MemoryPackagePart part) {
 		this._part = part;
-		_buff = new ByteArrayOutputStream();
+		_buff = new UnsynchronizedByteArrayOutputStream();
 	}
 
 	@Override

Modified: poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java (original)
+++ poi/trunk/poi-ooxml/src/main/java/org/apache/poi/openxml4j/opc/internal/PackagePropertiesPart.java Fri May 14 00:37:50 2021
@@ -202,8 +202,8 @@ public final class PackagePropertiesPart
     /**
      * Get the category property.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getCategoryProperty()
      */
+    @Override
     public Optional<String> getCategoryProperty() {
         return category;
     }
@@ -211,8 +211,8 @@ public final class PackagePropertiesPart
     /**
      * Get content status.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getContentStatusProperty()
      */
+    @Override
     public Optional<String> getContentStatusProperty() {
         return contentStatus;
     }
@@ -220,8 +220,8 @@ public final class PackagePropertiesPart
     /**
      * Get content type.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getContentTypeProperty()
      */
+    @Override
     public Optional<String> getContentTypeProperty() {
         return contentType;
     }
@@ -229,8 +229,8 @@ public final class PackagePropertiesPart
     /**
      * Get created date.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getCreatedProperty()
      */
+    @Override
     public Optional<Date> getCreatedProperty() {
         return created;
     }
@@ -247,8 +247,8 @@ public final class PackagePropertiesPart
     /**
      * Get creator.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getCreatorProperty()
      */
+    @Override
     public Optional<String> getCreatorProperty() {
         return creator;
     }
@@ -256,8 +256,8 @@ public final class PackagePropertiesPart
     /**
      * Get description.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getDescriptionProperty()
      */
+    @Override
     public Optional<String> getDescriptionProperty() {
         return description;
     }
@@ -265,8 +265,8 @@ public final class PackagePropertiesPart
     /**
      * Get identifier.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getIdentifierProperty()
      */
+    @Override
     public Optional<String> getIdentifierProperty() {
         return identifier;
     }
@@ -274,8 +274,8 @@ public final class PackagePropertiesPart
     /**
      * Get keywords.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getKeywordsProperty()
      */
+    @Override
     public Optional<String> getKeywordsProperty() {
         return keywords;
     }
@@ -283,8 +283,8 @@ public final class PackagePropertiesPart
     /**
      * Get the language.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getLanguageProperty()
      */
+    @Override
     public Optional<String> getLanguageProperty() {
         return language;
     }
@@ -292,8 +292,8 @@ public final class PackagePropertiesPart
     /**
      * Get the author of last modifications.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getLastModifiedByProperty()
      */
+    @Override
     public Optional<String> getLastModifiedByProperty() {
         return lastModifiedBy;
     }
@@ -301,8 +301,8 @@ public final class PackagePropertiesPart
     /**
      * Get last printed date.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getLastPrintedProperty()
      */
+    @Override
     public Optional<Date> getLastPrintedProperty() {
         return lastPrinted;
     }
@@ -319,8 +319,8 @@ public final class PackagePropertiesPart
     /**
      * Get modified date.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getModifiedProperty()
      */
+    @Override
     public Optional<Date> getModifiedProperty() {
         return modified;
     }
@@ -340,8 +340,8 @@ public final class PackagePropertiesPart
     /**
      * Get revision.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getRevisionProperty()
      */
+    @Override
     public Optional<String> getRevisionProperty() {
         return revision;
     }
@@ -349,8 +349,8 @@ public final class PackagePropertiesPart
     /**
      * Get subject.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getSubjectProperty()
      */
+    @Override
     public Optional<String> getSubjectProperty() {
         return subject;
     }
@@ -358,8 +358,8 @@ public final class PackagePropertiesPart
     /**
      * Get title.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getTitleProperty()
      */
+    @Override
     public Optional<String> getTitleProperty() {
         return title;
     }
@@ -367,8 +367,8 @@ public final class PackagePropertiesPart
     /**
      * Get version.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#getVersionProperty()
      */
+    @Override
     public Optional<String> getVersionProperty() {
         return version;
     }
@@ -376,8 +376,8 @@ public final class PackagePropertiesPart
     /**
      * Set the category.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setCategoryProperty(java.lang.String)
      */
+    @Override
     public void setCategoryProperty(String category) {
         this.category = setStringValue(category);
     }
@@ -385,15 +385,15 @@ public final class PackagePropertiesPart
     /**
      * Set the category.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setCategoryProperty(java.util.Optional)
      */
+    @Override
     public void setCategoryProperty(Optional<String> category) { this.category = category; }
 
     /**
      * Set the content status.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setContentStatusProperty(java.lang.String)
      */
+    @Override
     public void setContentStatusProperty(String contentStatus) {
         this.contentStatus = setStringValue(contentStatus);
     }
@@ -401,15 +401,15 @@ public final class PackagePropertiesPart
     /**
      * Set the content status.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setContentStatusProperty(java.util.Optional)
      */
+    @Override
     public void setContentStatusProperty(Optional<String> contentStatus) { this.contentStatus = contentStatus; }
 
     /**
      * Set the content type.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setContentTypeProperty(java.lang.String)
      */
+    @Override
     public void setContentTypeProperty(String contentType) {
         this.contentType = setStringValue(contentType);
     }
@@ -417,8 +417,8 @@ public final class PackagePropertiesPart
     /**
      * Set the content type.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setContentTypeProperty(java.util.Optional)
      */
+    @Override
     public void setContentTypeProperty(Optional<String> contentType) { this.contentType = contentType; }
 
     /**
@@ -426,6 +426,7 @@ public final class PackagePropertiesPart
      *
      * @see org.apache.poi.openxml4j.opc.PackageProperties#setCreatedProperty(java.util.Optional)
      */
+    @Override
     public void setCreatedProperty(String created) {
         try {
             this.created = setDateValue(created);
@@ -437,8 +438,8 @@ public final class PackagePropertiesPart
     /**
      * Set the created date.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setCreatedProperty(java.util.Optional)
      */
+    @Override
     public void setCreatedProperty(Optional<Date> created) {
         if (created.isPresent())
             this.created = created;
@@ -447,8 +448,8 @@ public final class PackagePropertiesPart
     /**
      * Set the creator.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setCreatorProperty(java.lang.String)
      */
+    @Override
     public void setCreatorProperty(String creator) {
         this.creator = setStringValue(creator);
     }
@@ -456,15 +457,15 @@ public final class PackagePropertiesPart
     /**
      * Set the creator.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setCreatorProperty(java.util.Optional)
      */
+    @Override
     public void setCreatorProperty(Optional<String> creator) { this.creator = creator; }
 
     /**
      * Set the description.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setDescriptionProperty(java.lang.String)
      */
+    @Override
     public void setDescriptionProperty(String description) {
         this.description = setStringValue(description);
     }
@@ -472,15 +473,15 @@ public final class PackagePropertiesPart
     /**
      * Set the description.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setDescriptionProperty(java.util.Optional)
      */
+    @Override
     public void setDescriptionProperty(Optional<String> description) { this.description = description; }
 
     /**
      * Set identifier.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setIdentifierProperty(java.lang.String)
      */
+    @Override
     public void setIdentifierProperty(String identifier) {
         this.identifier = setStringValue(identifier);
     }
@@ -488,15 +489,15 @@ public final class PackagePropertiesPart
     /**
      * Set identifier.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setIdentifierProperty(java.util.Optional)
      */
+    @Override
     public void setIdentifierProperty(Optional<String> identifier) { this.identifier = identifier; }
 
     /**
      * Set keywords.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setKeywordsProperty(java.lang.String)
      */
+    @Override
     public void setKeywordsProperty(String keywords) {
         this.keywords = setStringValue(keywords);
     }
@@ -504,15 +505,15 @@ public final class PackagePropertiesPart
     /**
      * Set keywords.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setKeywordsProperty(java.util.Optional)
      */
+    @Override
     public void setKeywordsProperty(Optional<String> keywords) { this.keywords = keywords; }
 
     /**
      * Set language.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setLanguageProperty(java.lang.String)
      */
+    @Override
     public void setLanguageProperty(String language) {
         this.language = setStringValue(language);
     }
@@ -520,15 +521,15 @@ public final class PackagePropertiesPart
     /**
      * Set language.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setLanguageProperty(java.util.Optional)
      */
+    @Override
     public void setLanguageProperty(Optional<String> language) { this.language = language; }
 
     /**
      * Set last modifications author.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setLastModifiedByProperty(java.lang.String)
      */
+    @Override
     public void setLastModifiedByProperty(String lastModifiedBy) {
         this.lastModifiedBy = setStringValue(lastModifiedBy);
     }
@@ -536,8 +537,8 @@ public final class PackagePropertiesPart
     /**
      * Set last modifications author.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setLastModifiedByProperty(java.util.Optional)
      */
+    @Override
     public void setLastModifiedByProperty(Optional<String> lastModifiedBy) {
         this.lastModifiedBy = lastModifiedBy;
     }
@@ -547,6 +548,7 @@ public final class PackagePropertiesPart
      *
      * @see org.apache.poi.openxml4j.opc.PackageProperties#setLastPrintedProperty(java.util.Optional)
      */
+    @Override
     public void setLastPrintedProperty(String lastPrinted) {
         try {
             this.lastPrinted = setDateValue(lastPrinted);
@@ -559,8 +561,8 @@ public final class PackagePropertiesPart
     /**
      * Set last printed date.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setLastPrintedProperty(java.util.Optional)
      */
+    @Override
     public void setLastPrintedProperty(Optional<Date> lastPrinted) {
         if (lastPrinted.isPresent())
             this.lastPrinted = lastPrinted;
@@ -571,6 +573,7 @@ public final class PackagePropertiesPart
      *
      * @see org.apache.poi.openxml4j.opc.PackageProperties#setModifiedProperty(java.util.Optional)
      */
+    @Override
     public void setModifiedProperty(String modified) {
         try {
             this.modified = setDateValue(modified);
@@ -583,8 +586,8 @@ public final class PackagePropertiesPart
     /**
      * Set last modification date.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setModifiedProperty(java.util.Optional)
      */
+    @Override
     public void setModifiedProperty(Optional<Date> modified) {
         if (modified.isPresent())
             this.modified = modified;
@@ -593,23 +596,23 @@ public final class PackagePropertiesPart
     /**
      * Set revision.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setRevisionProperty(java.util.Optional)
      */
+    @Override
     public void setRevisionProperty(Optional<String> revision) { this.revision = revision; }
 
     /**
      * Set revision.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setRevisionProperty(java.lang.String)
      */
+    @Override
     public void setRevisionProperty(String revision) {
         this.revision = setStringValue(revision);
     }
     /**
      * Set subject.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setSubjectProperty(java.lang.String)
      */
+    @Override
     public void setSubjectProperty(String subject) {
         this.subject = setStringValue(subject);
     }
@@ -617,15 +620,15 @@ public final class PackagePropertiesPart
     /**
      * Set subject.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setSubjectProperty(java.util.Optional)
      */
+    @Override
     public void setSubjectProperty(Optional<String> subject) { this.subject = subject; }
 
     /**
      * Set title.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setTitleProperty(java.lang.String)
      */
+    @Override
     public void setTitleProperty(String title) {
         this.title = setStringValue(title);
     }
@@ -633,15 +636,15 @@ public final class PackagePropertiesPart
     /**
      * Set title.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setTitleProperty(java.util.Optional)
      */
+    @Override
     public void setTitleProperty(Optional<String> title) { this.title = title; }
 
     /**
      * Set version.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setVersionProperty(java.lang.String)
      */
+    @Override
     public void setVersionProperty(String version) {
         this.version = setStringValue(version);
     }
@@ -649,12 +652,12 @@ public final class PackagePropertiesPart
     /**
      * Set version.
      *
-     * @see org.apache.poi.openxml4j.opc.PackageProperties#setVersionProperty(java.util.Optional)
      */
+    @Override
     public void setVersionProperty(Optional<String> version) { this.version = version; }
 
     /**
-     * Convert a string value into a Optional<String>
+     * Convert a string value into a {@code Optional<String>}
      */
     private Optional<String> setStringValue(String s) {
         if (s == null || s.isEmpty()) {
@@ -664,7 +667,7 @@ public final class PackagePropertiesPart
     }
 
     /**
-     * Convert a string value represented a date into a Optional<Date>.
+     * Convert a string value represented a date into a {@code Optional<Date>}
      *
      * @throws InvalidFormatException
      *             Throws if the date format isnot valid.
@@ -707,7 +710,7 @@ public final class PackagePropertiesPart
     }
 
     /**
-     * Convert a Optional<Date> into a String.
+     * Convert a {@code Optional<Date>} into a String.
      *
      * @param d
      *            The Date to convert.

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=1889871&r1=1889870&r2=1889871&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 Fri May 14 00:37:50 2021
@@ -17,7 +17,6 @@
 
 package org.apache.poi.poifs.crypt.dsig;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.security.GeneralSecurityException;
@@ -26,6 +25,7 @@ import java.security.PrivateKey;
 
 import javax.crypto.Cipher;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.poifs.crypt.ChainingMode;
 import org.apache.poi.poifs.crypt.CipherAlgorithm;
@@ -54,7 +54,7 @@ import org.ietf.jgss.Oid;
         }
         md = CryptoFunctions.getMessageDigest(algo);
     }
-    
+
     @Override
     public void write(final int b) throws IOException {
         md.update((byte)b);
@@ -66,7 +66,7 @@ import org.ietf.jgss.Oid;
     }
 
     public byte[] sign() throws IOException, GeneralSecurityException {
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
         bos.write(getHashMagic());
         bos.write(md.digest());
 
@@ -74,7 +74,7 @@ import org.ietf.jgss.Oid;
             , ChainingMode.ecb, null, Cipher.ENCRYPT_MODE, "PKCS1Padding");
         return cipher.doFinal(bos.toByteArray());
     }
-    
+
     static boolean isMSCapi(final PrivateKey key) {
         return key != null && key.getClass().getName().contains("mscapi");
     }
@@ -84,7 +84,7 @@ import org.ietf.jgss.Oid;
      * Each digest method has its own ASN1 header
      *
      * @return the ASN1 header bytes for the signatureValue / digestInfo
-     * 
+     *
      * @see <a href="https://tools.ietf.org/html/rfc2313#section-10.1.2">Data encoding</a>
      */
     byte[] getHashMagic() {
@@ -94,7 +94,7 @@ import org.ietf.jgss.Oid;
         try {
             final byte[] oidBytes = new Oid(algo.rsaOid).getDER();
 
-            final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+            final UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
             bos.write(0x30);
             bos.write(algo.hashSize+oidBytes.length+6);
             bos.write(0x30);
@@ -102,7 +102,7 @@ import org.ietf.jgss.Oid;
             bos.write(oidBytes);
             bos.write(new byte[] {5,0,4});
             bos.write(algo.hashSize);
-            
+
             return bos.toByteArray();
         } catch (GSSException|IOException e) {
             throw new IllegalStateException(e);

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=1889871&r1=1889870&r2=1889871&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 Fri May 14 00:37:50 2021
@@ -24,8 +24,6 @@
 
 package org.apache.poi.poifs.crypt.dsig;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
@@ -38,6 +36,7 @@ import javax.xml.crypto.URIReference;
 import javax.xml.crypto.URIReferenceException;
 import javax.xml.crypto.XMLCryptoContext;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -60,6 +59,7 @@ public class OOXMLURIDereferencer implem
         baseUriDereferencer = signatureInfo.getSignatureFactory().getURIDereferencer();
     }
 
+    @Override
     public Data dereference(URIReference uriReference, XMLCryptoContext context) throws URIReferenceException {
         if (uriReference == null) {
             throw new NullPointerException("URIReference cannot be null - call setSignatureInfo(...) before");
@@ -90,12 +90,12 @@ 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
-                ByteArrayOutputStream bos = new ByteArrayOutputStream();
+                UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
                 for (int ch; (ch = dataStream.read()) != -1; ) {
                     if (ch == 10 || ch == 13) continue;
                     bos.write(ch);
                 }
-                dataStream = new ByteArrayInputStream(bos.toByteArray());
+                dataStream = bos.toInputStream();
             }
         } catch (IOException e) {
             throw new URIReferenceException("I/O error: " + e.getMessage(), e);



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