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 [10/17] - in /poi: site/src/documentation/content/xdocs/ site/src/documentation/content/xdocs/components/ trunk/ trunk/maven/ trunk/osgi/ trunk/osgi/src/test/java/org/apache/poi/osgi/ trunk/poi-examples/src/main/java/org/apache/poi...

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlideMaster.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlideMaster.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlideMaster.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlideMaster.java Fri May 14 00:37:50 2021
@@ -17,28 +17,32 @@
 
 package org.apache.poi.hslf.model;
 
+import static org.apache.poi.hslf.HSLFTestDataSamples.getSlideShow;
+import static org.apache.poi.hslf.HSLFTestDataSamples.writeOutAndReadBack;
 import static org.apache.poi.sl.usermodel.TextShape.TextPlaceholder.BODY;
 import static org.apache.poi.sl.usermodel.TextShape.TextPlaceholder.CENTER_BODY;
 import static org.apache.poi.sl.usermodel.TextShape.TextPlaceholder.CENTER_TITLE;
 import static org.apache.poi.sl.usermodel.TextShape.TextPlaceholder.TITLE;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 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 java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.IntStream;
 
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hslf.model.textproperties.CharFlagsTextProp;
 import org.apache.poi.hslf.model.textproperties.TextProp;
 import org.apache.poi.hslf.record.Environment;
+import org.apache.poi.hslf.usermodel.HSLFFontInfo;
 import org.apache.poi.hslf.usermodel.HSLFMasterSheet;
 import org.apache.poi.hslf.usermodel.HSLFSlide;
 import org.apache.poi.hslf.usermodel.HSLFSlideMaster;
 import org.apache.poi.hslf.usermodel.HSLFSlideShow;
-import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
 import org.apache.poi.hslf.usermodel.HSLFTextParagraph;
 import org.apache.poi.hslf.usermodel.HSLFTextRun;
 import org.apache.poi.hslf.usermodel.HSLFTitleMaster;
@@ -49,7 +53,7 @@ import org.junit.jupiter.api.Test;
  * Tests for SlideMaster
  */
 public final class TestSlideMaster {
-    private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
+    private static final POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
 
     /**
      * The reference ppt has two masters.
@@ -57,46 +61,54 @@ public final class TestSlideMaster {
      */
     @Test
     void testSlideMaster() throws IOException {
-        final HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
+        try (HSLFSlideShow ppt = getSlideShow("slide_master.ppt")) {
 
-        final Environment env = ppt.getDocumentRecord().getEnvironment();
+            final Environment env = ppt.getDocumentRecord().getEnvironment();
 
-        assertEquals(2, ppt.getSlideMasters().size());
+            assertEquals(2, ppt.getSlideMasters().size());
 
-        //character attributes
-        assertEquals(40, getMasterVal(ppt, 0, TITLE, "font.size", true));
-        assertEquals(48, getMasterVal(ppt, 1, TITLE, "font.size", true));
-
-        int font1 = getMasterVal(ppt, 0, TITLE, "font.index", true);
-        int font2 = getMasterVal(ppt, 1, TITLE, "font.index", true);
-        assertEquals("Arial", env.getFontCollection().getFontInfo(font1).getTypeface());
-        assertEquals("Georgia", env.getFontCollection().getFontInfo(font2).getTypeface());
-
-        CharFlagsTextProp prop1 = getMasterProp(ppt, 0, TITLE, "char_flags", true);
-        assertFalse(prop1.getSubValue(CharFlagsTextProp.BOLD_IDX));
-        assertFalse(prop1.getSubValue(CharFlagsTextProp.ITALIC_IDX));
-        assertTrue(prop1.getSubValue(CharFlagsTextProp.UNDERLINE_IDX));
-
-        CharFlagsTextProp prop2 = getMasterProp(ppt, 1, TITLE, "char_flags", true);
-        assertFalse(prop2.getSubValue(CharFlagsTextProp.BOLD_IDX));
-        assertTrue(prop2.getSubValue(CharFlagsTextProp.ITALIC_IDX));
-        assertFalse(prop2.getSubValue(CharFlagsTextProp.UNDERLINE_IDX));
-
-        //now paragraph attributes
-        assertEquals(0x266B, getMasterVal(ppt, 0, BODY, "bullet.char", false));
-        assertEquals(0x2022, getMasterVal(ppt, 1, BODY, "bullet.char", false));
-
-        int b1 = getMasterVal(ppt, 0, BODY, "bullet.font", false);
-        int b2 = getMasterVal(ppt, 1, BODY, "bullet.font", false);
-        assertEquals("Arial", env.getFontCollection().getFontInfo(b1).getTypeface());
-        assertEquals("Georgia", env.getFontCollection().getFontInfo(b2).getTypeface());
-
-        ppt.close();
+            //character attributes
+            assertEquals(40, getMasterVal(ppt, 0, TITLE, "font.size", true));
+            assertEquals(48, getMasterVal(ppt, 1, TITLE, "font.size", true));
+
+            int font1 = getMasterVal(ppt, 0, TITLE, "font.index", true);
+            int font2 = getMasterVal(ppt, 1, TITLE, "font.index", true);
+            HSLFFontInfo fontInfo = env.getFontCollection().getFontInfo(font1);
+            assertNotNull(fontInfo);
+            assertEquals("Arial", fontInfo.getTypeface());
+            fontInfo = env.getFontCollection().getFontInfo(font2);
+            assertNotNull(fontInfo);
+            assertEquals("Georgia", fontInfo.getTypeface());
+
+            CharFlagsTextProp prop1 = getMasterProp(ppt, 0, TITLE, "char_flags", true);
+            assertFalse(prop1.getSubValue(CharFlagsTextProp.BOLD_IDX));
+            assertFalse(prop1.getSubValue(CharFlagsTextProp.ITALIC_IDX));
+            assertTrue(prop1.getSubValue(CharFlagsTextProp.UNDERLINE_IDX));
+
+            CharFlagsTextProp prop2 = getMasterProp(ppt, 1, TITLE, "char_flags", true);
+            assertFalse(prop2.getSubValue(CharFlagsTextProp.BOLD_IDX));
+            assertTrue(prop2.getSubValue(CharFlagsTextProp.ITALIC_IDX));
+            assertFalse(prop2.getSubValue(CharFlagsTextProp.UNDERLINE_IDX));
+
+            //now paragraph attributes
+            assertEquals(0x266B, getMasterVal(ppt, 0, BODY, "bullet.char", false));
+            assertEquals(0x2022, getMasterVal(ppt, 1, BODY, "bullet.char", false));
+
+            int b1 = getMasterVal(ppt, 0, BODY, "bullet.font", false);
+            int b2 = getMasterVal(ppt, 1, BODY, "bullet.font", false);
+            fontInfo = env.getFontCollection().getFontInfo(b1);
+            assertNotNull(fontInfo);
+            assertEquals("Arial", fontInfo.getTypeface());
+            fontInfo = env.getFontCollection().getFontInfo(b2);
+            assertNotNull(fontInfo);
+            assertEquals("Georgia", fontInfo.getTypeface());
+        }
     }
 
-    @SuppressWarnings("unchecked")
     private static <T extends TextProp> T getMasterProp(HSLFSlideShow ppt, int masterIdx, TextPlaceholder txtype, String propName, boolean isCharacter) {
-        return (T)ppt.getSlideMasters().get(masterIdx).getPropCollection(txtype.nativeId, 0, propName, isCharacter).findByName(propName);
+        return Objects.requireNonNull(ppt.getSlideMasters().get(masterIdx)
+            .getPropCollection(txtype.nativeId, 0, propName, isCharacter))
+            .findByName(propName);
     }
 
     private static int getMasterVal(HSLFSlideShow ppt, int masterIdx, TextPlaceholder txtype, String propName, boolean isCharacter) {
@@ -109,22 +121,21 @@ public final class TestSlideMaster {
      */
     @Test
     void testTitleMasterTextAttributes() throws IOException {
-        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
-        assertEquals(1, ppt.getTitleMasters().size());
-
-        assertEquals(40, getMasterVal(ppt, 0, CENTER_TITLE, "font.size", true));
-        CharFlagsTextProp prop1 = getMasterProp(ppt, 0, CENTER_TITLE, "char_flags", true);
-        assertFalse(prop1.getSubValue(CharFlagsTextProp.BOLD_IDX));
-        assertFalse(prop1.getSubValue(CharFlagsTextProp.ITALIC_IDX));
-        assertTrue(prop1.getSubValue(CharFlagsTextProp.UNDERLINE_IDX));
-
-        assertEquals(32, getMasterVal(ppt, 0, CENTER_BODY, "font.size", true));
-        CharFlagsTextProp prop2 = getMasterProp(ppt, 0, CENTER_BODY, "char_flags", true);
-        assertFalse(prop2.getSubValue(CharFlagsTextProp.BOLD_IDX));
-        assertFalse(prop2.getSubValue(CharFlagsTextProp.ITALIC_IDX));
-        assertFalse(prop2.getSubValue(CharFlagsTextProp.UNDERLINE_IDX));
+        try (HSLFSlideShow ppt = getSlideShow("slide_master.ppt")) {
+            assertEquals(1, ppt.getTitleMasters().size());
 
-        ppt.close();
+            assertEquals(40, getMasterVal(ppt, 0, CENTER_TITLE, "font.size", true));
+            CharFlagsTextProp prop1 = getMasterProp(ppt, 0, CENTER_TITLE, "char_flags", true);
+            assertFalse(prop1.getSubValue(CharFlagsTextProp.BOLD_IDX));
+            assertFalse(prop1.getSubValue(CharFlagsTextProp.ITALIC_IDX));
+            assertTrue(prop1.getSubValue(CharFlagsTextProp.UNDERLINE_IDX));
+
+            assertEquals(32, getMasterVal(ppt, 0, CENTER_BODY, "font.size", true));
+            CharFlagsTextProp prop2 = getMasterProp(ppt, 0, CENTER_BODY, "char_flags", true);
+            assertFalse(prop2.getSubValue(CharFlagsTextProp.BOLD_IDX));
+            assertFalse(prop2.getSubValue(CharFlagsTextProp.ITALIC_IDX));
+            assertFalse(prop2.getSubValue(CharFlagsTextProp.UNDERLINE_IDX));
+        }
     }
 
     /**
@@ -132,30 +143,32 @@ public final class TestSlideMaster {
      */
     @Test
     void testTitleMaster() throws IOException {
-        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
-        HSLFSlide slide = ppt.getSlides().get(2);
-        HSLFMasterSheet masterSheet = slide.getMasterSheet();
-        assertTrue(masterSheet instanceof HSLFTitleMaster);
-
-        for (List<HSLFTextParagraph> txt : slide.getTextParagraphs()) {
-            HSLFTextRun rt = txt.get(0).getTextRuns().get(0);
-            switch(TextPlaceholder.fromNativeId(txt.get(0).getRunType())){
-                case CENTER_TITLE:
-                    assertEquals("Arial", rt.getFontFamily());
-                    assertEquals(32, rt.getFontSize(), 0);
-                    assertTrue(rt.isBold());
-                    assertTrue(rt.isUnderlined());
-                    break;
-                case CENTER_BODY:
-                    assertEquals("Courier New", rt.getFontFamily());
-                    assertEquals(20, rt.getFontSize(), 0);
-                    assertTrue(rt.isBold());
-                    assertFalse(rt.isUnderlined());
-                    break;
+        try (HSLFSlideShow ppt = getSlideShow("slide_master.ppt")) {
+            HSLFSlide slide = ppt.getSlides().get(2);
+            HSLFMasterSheet masterSheet = slide.getMasterSheet();
+            assertTrue(masterSheet instanceof HSLFTitleMaster);
+
+            for (List<HSLFTextParagraph> txt : slide.getTextParagraphs()) {
+                HSLFTextRun rt = txt.get(0).getTextRuns().get(0);
+                assertNotNull(rt.getFontSize());
+                TextPlaceholder tp = TextPlaceholder.fromNativeId(txt.get(0).getRunType());
+                assertNotNull(tp);
+                switch (tp) {
+                    case CENTER_TITLE:
+                        assertEquals("Arial", rt.getFontFamily());
+                        assertEquals(32, rt.getFontSize(), 0);
+                        assertTrue(rt.isBold());
+                        assertTrue(rt.isUnderlined());
+                        break;
+                    case CENTER_BODY:
+                        assertEquals("Courier New", rt.getFontFamily());
+                        assertEquals(20, rt.getFontSize(), 0);
+                        assertTrue(rt.isBold());
+                        assertFalse(rt.isUnderlined());
+                        break;
+                }
             }
-
         }
-        ppt.close();
     }
 
     /**
@@ -163,48 +176,46 @@ public final class TestSlideMaster {
      */
     @Test
     void testMasterAttributes() throws Exception {
-        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
-        List<HSLFSlide> slide = ppt.getSlides();
-        assertEquals(3, slide.size());
-        for (List<HSLFTextParagraph> tparas : slide.get(0).getTextParagraphs()) {
-            HSLFTextParagraph tpara = tparas.get(0);
-            if (tpara.getRunType() == TITLE.nativeId){
-                HSLFTextRun rt = tpara.getTextRuns().get(0);
-                assertEquals(40, rt.getFontSize(), 0);
-                assertTrue(rt.isUnderlined());
-                assertEquals("Arial", rt.getFontFamily());
-            } else if (tpara.getRunType() == BODY.nativeId){
+        try (HSLFSlideShow ppt = getSlideShow("slide_master.ppt")) {
+            List<HSLFSlide> slide = ppt.getSlides();
+            assertEquals(3, slide.size());
+            for (List<HSLFTextParagraph> tparas : slide.get(0).getTextParagraphs()) {
+                HSLFTextParagraph tpara = tparas.get(0);
                 HSLFTextRun rt = tpara.getTextRuns().get(0);
-                assertEquals(0, tpara.getIndentLevel());
-                assertEquals(32, rt.getFontSize(), 0);
-                assertEquals("Arial", rt.getFontFamily());
-
-                tpara = tparas.get(1);
-                rt = tpara.getTextRuns().get(0);
-                assertEquals(1, tpara.getIndentLevel());
-                assertEquals(28, rt.getFontSize(), 0);
-                assertEquals("Arial", rt.getFontFamily());
+                assertNotNull(rt.getFontSize());
+                if (tpara.getRunType() == TITLE.nativeId) {
+                    assertEquals(40, rt.getFontSize(), 0);
+                    assertTrue(rt.isUnderlined());
+                    assertEquals("Arial", rt.getFontFamily());
+                } else if (tpara.getRunType() == BODY.nativeId) {
+                    assertEquals(0, tpara.getIndentLevel());
+                    assertEquals(32, rt.getFontSize(), 0);
+                    assertEquals("Arial", rt.getFontFamily());
 
+                    tpara = tparas.get(1);
+                    rt = tpara.getTextRuns().get(0);
+                    assertEquals(1, tpara.getIndentLevel());
+                    assertNotNull(rt.getFontSize());
+                    assertEquals(28, rt.getFontSize(), 0);
+                    assertEquals("Arial", rt.getFontFamily());
+                }
             }
-        }
 
-        for (List<HSLFTextParagraph> tparas : slide.get(1).getTextParagraphs()) {
-            HSLFTextParagraph tpara = tparas.get(0);
-            if (tpara.getRunType() == TITLE.nativeId){
+            for (List<HSLFTextParagraph> tparas : slide.get(1).getTextParagraphs()) {
+                HSLFTextParagraph tpara = tparas.get(0);
                 HSLFTextRun rt = tpara.getTextRuns().get(0);
-                assertEquals(48, rt.getFontSize(), 0);
-                assertTrue(rt.isItalic());
-                assertEquals("Georgia", rt.getFontFamily());
-            } else if (tpara.getRunType() == BODY.nativeId){
-                HSLFTextRun rt;
-                rt = tpara.getTextRuns().get(0);
-                assertEquals(0, tpara.getIndentLevel());
-                assertEquals(32, rt.getFontSize(), 0);
-                assertEquals("Courier New", rt.getFontFamily());
+                assertNotNull(rt.getFontSize());
+                if (tpara.getRunType() == TITLE.nativeId) {
+                    assertEquals(48, rt.getFontSize(), 0);
+                    assertTrue(rt.isItalic());
+                    assertEquals("Georgia", rt.getFontFamily());
+                } else if (tpara.getRunType() == BODY.nativeId) {
+                    assertEquals(0, tpara.getIndentLevel());
+                    assertEquals(32, rt.getFontSize(), 0);
+                    assertEquals("Courier New", rt.getFontFamily());
+                }
             }
         }
-
-        ppt.close();
     }
 
     /**
@@ -212,35 +223,32 @@ public final class TestSlideMaster {
      */
     @Test
     void testChangeSlideMaster() throws IOException {
-        HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"));
-        List<HSLFSlideMaster> master = ppt.getSlideMasters();
-        List<HSLFSlide> slide = ppt.getSlides();
-        int sheetNo;
-
-        //each slide uses its own master
-        assertEquals(slide.get(0).getMasterSheet()._getSheetNumber(), master.get(0)._getSheetNumber());
-        assertEquals(slide.get(1).getMasterSheet()._getSheetNumber(), master.get(1)._getSheetNumber());
-
-        //all slides use the first master slide
-        sheetNo = master.get(0)._getSheetNumber();
-        for (HSLFSlide s : slide) {
-            s.setMasterSheet(master.get(0));
-        }
-
-        ByteArrayOutputStream out;
-
-        out = new ByteArrayOutputStream();
-        ppt.write(out);
-        out.close();
-
-        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
-        master = ppt.getSlideMasters();
-        slide = ppt.getSlides();
-        for (HSLFSlide s : slide) {
-            assertEquals(sheetNo, s.getMasterSheet()._getSheetNumber());
+        try (HSLFSlideShow ppt = new HSLFSlideShow(_slTests.openResourceAsStream("slide_master.ppt"))) {
+            int[] masterIds = IntStream.concat(
+                ppt.getSlideMasters().stream().mapToInt(HSLFSlideMaster::_getSheetNumber),
+                ppt.getTitleMasters().stream().mapToInt(HSLFTitleMaster::_getSheetNumber)
+            ).toArray();
+            //each slide uses its own master
+            int[] slideMasters = ppt.getSlides().stream().mapToInt(s -> {
+                HSLFMasterSheet m = s.getMasterSheet();
+                assertNotNull(m);
+                return m._getSheetNumber();
+            }).toArray();
+            assertArrayEquals(masterIds, slideMasters);
+
+            //all slides use the first master slide
+            HSLFSlideMaster master0 = ppt.getSlideMasters().get(0);
+            int sheetNo = master0._getSheetNumber();
+            ppt.getSlides().forEach(s -> s.setMasterSheet(master0));
+
+            try (HSLFSlideShow ppt2 = writeOutAndReadBack(ppt)) {
+                for (HSLFSlide s : ppt2.getSlides()) {
+                    HSLFMasterSheet ms = s.getMasterSheet();
+                    assertNotNull(ms);
+                    assertEquals(sheetNo, ms._getSheetNumber());
+                }
+            }
         }
-
-        ppt.close();
     }
 
     /**
@@ -256,6 +264,7 @@ public final class TestSlideMaster {
             HSLFTextParagraph tpara = tparas.get(0);
             if (tpara.getRunType() == TITLE.nativeId){
                 HSLFTextRun rt = tpara.getTextRuns().get(0);
+                assertNotNull(rt.getFontSize());
                 assertEquals(40, rt.getFontSize(), 0);
                 assertTrue(rt.isUnderlined());
                 assertEquals("Arial", rt.getFontFamily());
@@ -263,6 +272,7 @@ public final class TestSlideMaster {
                 int[] indents = {32, 28, 24};
                 for (HSLFTextRun rt : tpara.getTextRuns()) {
                     int indent = tpara.getIndentLevel();
+                    assertNotNull(rt.getFontSize());
                     assertEquals(indents[indent], rt.getFontSize(), 0);
                 }
             }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlides.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlides.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlides.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestSlides.java Fri May 14 00:37:50 2021
@@ -17,14 +17,13 @@
 
 package org.apache.poi.hslf.model;
 
+import static org.apache.poi.hslf.HSLFTestDataSamples.getSlideShow;
+import static org.apache.poi.hslf.HSLFTestDataSamples.writeOutAndReadBack;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-
-import org.apache.poi.POIDataSamples;
-import org.apache.poi.hslf.usermodel.*;
+import org.apache.poi.hslf.usermodel.HSLFSlide;
+import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -36,105 +35,96 @@ public final class TestSlides {
 
     /**
      * Add 1 slide to an empty ppt.
-     * @throws Exception
      */
     @Test
     void testAddSlides1() throws Exception {
-        HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
-        assertTrue(ppt.getSlides().isEmpty());
-
-        HSLFSlide s1 = ppt.createSlide();
-        assertEquals(1, ppt.getSlides().size());
-        assertEquals(3, s1._getSheetRefId());
-        assertEquals(256, s1._getSheetNumber());
-        assertEquals(1, s1.getSlideNumber());
-
-        //serialize and read again
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        ppt.write(out);
-        out.close();
+        try (HSLFSlideShow ppt1 = new HSLFSlideShow()) {
+            assertTrue(ppt1.getSlides().isEmpty());
 
-        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
-        assertEquals(1, ppt.getSlides().size());
+            HSLFSlide s1 = ppt1.createSlide();
+            assertEquals(1, ppt1.getSlides().size());
+            assertEquals(3, s1._getSheetRefId());
+            assertEquals(256, s1._getSheetNumber());
+            assertEquals(1, s1.getSlideNumber());
+
+            //serialize and read again
+            try (HSLFSlideShow ppt2 = writeOutAndReadBack(ppt1)){
+                assertEquals(1, ppt2.getSlides().size());
+            }
+        }
     }
 
     /**
      * Add 2 slides to an empty ppt
-     * @throws Exception
      */
     @Test
     void testAddSlides2() throws Exception {
-        HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
-        assertTrue(ppt.getSlides().isEmpty());
+        try (HSLFSlideShow ppt1 = new HSLFSlideShow()) {
+            assertTrue(ppt1.getSlides().isEmpty());
 
-        HSLFSlide s1 = ppt.createSlide();
-        assertEquals(1, ppt.getSlides().size());
-        assertEquals(3, s1._getSheetRefId());
-        assertEquals(256, s1._getSheetNumber());
-        assertEquals(1, s1.getSlideNumber());
-
-        HSLFSlide s2 = ppt.createSlide();
-        assertEquals(2, ppt.getSlides().size());
-        assertEquals(4, s2._getSheetRefId());
-        assertEquals(257, s2._getSheetNumber());
-        assertEquals(2, s2.getSlideNumber());
-
-        //serialize and read again
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        ppt.write(out);
-        out.close();
-
-        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
-        assertEquals(2, ppt.getSlides().size());
+            HSLFSlide s1 = ppt1.createSlide();
+            assertEquals(1, ppt1.getSlides().size());
+            assertEquals(3, s1._getSheetRefId());
+            assertEquals(256, s1._getSheetNumber());
+            assertEquals(1, s1.getSlideNumber());
+
+            HSLFSlide s2 = ppt1.createSlide();
+            assertEquals(2, ppt1.getSlides().size());
+            assertEquals(4, s2._getSheetRefId());
+            assertEquals(257, s2._getSheetNumber());
+            assertEquals(2, s2.getSlideNumber());
+
+            //serialize and read again
+            try (HSLFSlideShow ppt2 = writeOutAndReadBack(ppt1)) {
+                assertEquals(2, ppt2.getSlides().size());
+            }
+        }
     }
 
     /**
      * Add 3 slides to an empty ppt
-     * @throws Exception
      */
     @Test
     void testAddSlides3() throws Exception {
-        HSLFSlideShow ppt = new HSLFSlideShow(new HSLFSlideShowImpl( TestSlides.class.getResourceAsStream("/org/apache/poi/hslf/data/empty.ppt") ));
-        assertTrue(ppt.getSlides().isEmpty());
+        try (HSLFSlideShow ppt1 = new HSLFSlideShow()) {
+            assertTrue(ppt1.getSlides().isEmpty());
 
-        HSLFSlide s1 = ppt.createSlide();
-        assertEquals(1, ppt.getSlides().size());
-        assertEquals(3, s1._getSheetRefId());
-        assertEquals(256, s1._getSheetNumber());
-        assertEquals(1, s1.getSlideNumber());
-
-        HSLFSlide s2 = ppt.createSlide();
-        assertEquals(2, ppt.getSlides().size());
-        assertEquals(4, s2._getSheetRefId());
-        assertEquals(257, s2._getSheetNumber());
-        assertEquals(2, s2.getSlideNumber());
-
-        HSLFSlide s3 = ppt.createSlide();
-        assertEquals(3, ppt.getSlides().size());
-        assertEquals(5, s3._getSheetRefId());
-        assertEquals(258, s3._getSheetNumber());
-        assertEquals(3, s3.getSlideNumber());
-
-
-        //serialize and read again
-         ByteArrayOutputStream out = new ByteArrayOutputStream();
-        ppt.write(out);
-        out.close();
-
-        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
-        assertEquals(3, ppt.getSlides().size());
-
-        // Check IDs are still right
-        s1 = ppt.getSlides().get(0);
-        assertEquals(256, s1._getSheetNumber());
-        assertEquals(3, s1._getSheetRefId());
-        s2 = ppt.getSlides().get(1);
-        assertEquals(257, s2._getSheetNumber());
-        assertEquals(4, s2._getSheetRefId());
-        s3 = ppt.getSlides().get(2);
-        assertEquals(3, ppt.getSlides().size());
-        assertEquals(258, s3._getSheetNumber());
-        assertEquals(5, s3._getSheetRefId());
+            HSLFSlide s1 = ppt1.createSlide();
+            assertEquals(1, ppt1.getSlides().size());
+            assertEquals(3, s1._getSheetRefId());
+            assertEquals(256, s1._getSheetNumber());
+            assertEquals(1, s1.getSlideNumber());
+
+            HSLFSlide s2 = ppt1.createSlide();
+            assertEquals(2, ppt1.getSlides().size());
+            assertEquals(4, s2._getSheetRefId());
+            assertEquals(257, s2._getSheetNumber());
+            assertEquals(2, s2.getSlideNumber());
+
+            HSLFSlide s3 = ppt1.createSlide();
+            assertEquals(3, ppt1.getSlides().size());
+            assertEquals(5, s3._getSheetRefId());
+            assertEquals(258, s3._getSheetNumber());
+            assertEquals(3, s3.getSlideNumber());
+
+
+            //serialize and read again
+            try (HSLFSlideShow ppt2 = writeOutAndReadBack(ppt1)) {
+                assertEquals(3, ppt2.getSlides().size());
+
+                // Check IDs are still right
+                s1 = ppt2.getSlides().get(0);
+                assertEquals(256, s1._getSheetNumber());
+                assertEquals(3, s1._getSheetRefId());
+                s2 = ppt2.getSlides().get(1);
+                assertEquals(257, s2._getSheetNumber());
+                assertEquals(4, s2._getSheetRefId());
+                s3 = ppt2.getSlides().get(2);
+                assertEquals(3, ppt2.getSlides().size());
+                assertEquals(258, s3._getSheetNumber());
+                assertEquals(5, s3._getSheetRefId());
+            }
+        }
     }
 
     /**
@@ -142,48 +132,42 @@ public final class TestSlides {
      */
     @Test
     void testAddSlides2to3() throws Exception {
-        POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-        HSLFSlideShow ppt = new HSLFSlideShow(slTests.openResourceAsStream("basic_test_ppt_file.ppt"));
+        try (HSLFSlideShow ppt1 = getSlideShow("basic_test_ppt_file.ppt")) {
 
-        assertEquals(2, ppt.getSlides().size());
+            assertEquals(2, ppt1.getSlides().size());
 
-        // First slide is 256 / 4
-        HSLFSlide s1 = ppt.getSlides().get(0);
-        assertEquals(256, s1._getSheetNumber());
-        assertEquals(4, s1._getSheetRefId());
-
-        // Last slide is 257 / 6
-        HSLFSlide s2 = ppt.getSlides().get(1);
-        assertEquals(257, s2._getSheetNumber());
-        assertEquals(6, s2._getSheetRefId());
-
-        // Add another slide, goes in at the end
-        HSLFSlide s3 = ppt.createSlide();
-        assertEquals(3, ppt.getSlides().size());
-        assertEquals(258, s3._getSheetNumber());
-        assertEquals(8, s3._getSheetRefId());
-
-
-        // Serialize and read again
-         ByteArrayOutputStream out = new ByteArrayOutputStream();
-        ppt.write(out);
-        out.close();
-
-        ppt = new HSLFSlideShow(new HSLFSlideShowImpl(new ByteArrayInputStream(out.toByteArray())));
-        assertEquals(3, ppt.getSlides().size());
-
-
-        // Check IDs are still right
-        s1 = ppt.getSlides().get(0);
-        assertEquals(256, s1._getSheetNumber());
-        assertEquals(4, s1._getSheetRefId());
-        s2 = ppt.getSlides().get(1);
-        assertEquals(257, s2._getSheetNumber());
-        assertEquals(6, s2._getSheetRefId());
-        s3 = ppt.getSlides().get(2);
-        assertEquals(3, ppt.getSlides().size());
-        assertEquals(258, s3._getSheetNumber());
-        assertEquals(8, s3._getSheetRefId());
+            // First slide is 256 / 4
+            HSLFSlide s1 = ppt1.getSlides().get(0);
+            assertEquals(256, s1._getSheetNumber());
+            assertEquals(4, s1._getSheetRefId());
+
+            // Last slide is 257 / 6
+            HSLFSlide s2 = ppt1.getSlides().get(1);
+            assertEquals(257, s2._getSheetNumber());
+            assertEquals(6, s2._getSheetRefId());
+
+            // Add another slide, goes in at the end
+            HSLFSlide s3 = ppt1.createSlide();
+            assertEquals(3, ppt1.getSlides().size());
+            assertEquals(258, s3._getSheetNumber());
+            assertEquals(8, s3._getSheetRefId());
+
+            // Serialize and read again
+            try (HSLFSlideShow ppt2 = writeOutAndReadBack(ppt1)) {
+                assertEquals(3, ppt2.getSlides().size());
+
+                // Check IDs are still right
+                s1 = ppt2.getSlides().get(0);
+                assertEquals(256, s1._getSheetNumber());
+                assertEquals(4, s1._getSheetRefId());
+                s2 = ppt2.getSlides().get(1);
+                assertEquals(257, s2._getSheetNumber());
+                assertEquals(6, s2._getSheetRefId());
+                s3 = ppt2.getSlides().get(2);
+                assertEquals(3, ppt2.getSlides().size());
+                assertEquals(258, s3._getSheetNumber());
+                assertEquals(8, s3._getSheetRefId());
+            }
+        }
     }
-
 }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTable.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTable.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTable.java Fri May 14 00:37:50 2021
@@ -17,18 +17,17 @@
 
 package org.apache.poi.hslf.model;
 
+import static org.apache.poi.hslf.HSLFTestDataSamples.getSlideShow;
+import static org.apache.poi.hslf.HSLFTestDataSamples.writeOutAndReadBack;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertSame;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.poi.POIDataSamples;
 import org.apache.poi.hslf.usermodel.HSLFShape;
 import org.apache.poi.hslf.usermodel.HSLFSlide;
 import org.apache.poi.hslf.usermodel.HSLFSlideShow;
@@ -42,18 +41,15 @@ import org.apache.poi.sl.usermodel.TextS
 import org.junit.jupiter.api.Test;
 
 /**
- * Test <code>Table</code> object.
+ * Test {@code Table} object.
  */
 public final class TestTable {
-    private static final POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
-
     /**
-     * Test that ShapeFactory works properly and returns <code>Table</code>
+     * Test that ShapeFactory works properly and returns {@code Table}
      */
     @Test
     void testShapeFactory() throws IOException {
         final int noColumns, noRows;
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
         try (HSLFSlideShow ppt = new HSLFSlideShow()) {
             HSLFSlide slide = ppt.createSlide();
 
@@ -73,16 +69,15 @@ public final class TestTable {
             assertEquals(noColumns, tbl2.getNumberOfColumns());
             assertEquals(noRows, tbl2.getNumberOfRows());
 
-            ppt.write(out);
+            try (HSLFSlideShow ppt2 = writeOutAndReadBack(ppt)) {
+                HSLFSlide slide2 = ppt2.getSlides().get(0);
+                assertTrue(slide2.getShapes().get(0) instanceof HSLFTable);
+                HSLFTable tbl3 = (HSLFTable) slide2.getShapes().get(0);
+                assertEquals(noColumns, tbl3.getNumberOfColumns());
+                assertEquals(noRows, tbl3.getNumberOfRows());
+            }
         }
 
-        try (HSLFSlideShow ppt = new HSLFSlideShow(new ByteArrayInputStream(out.toByteArray()))) {
-            HSLFSlide slide = ppt.getSlides().get(0);
-            assertTrue(slide.getShapes().get(0) instanceof HSLFTable);
-            HSLFTable tbl3 = (HSLFTable) slide.getShapes().get(0);
-            assertEquals(noColumns, tbl3.getNumberOfColumns());
-            assertEquals(noRows, tbl3.getNumberOfRows());
-        }
     }
 
     /**
@@ -132,7 +127,7 @@ public final class TestTable {
      */
     @Test
     void test57820() throws IOException {
-        try (SlideShow<?,?> ppt = new HSLFSlideShow(_slTests.openResourceAsStream("bug57820-initTableNullRefrenceException.ppt"))) {
+        try (SlideShow<?,?> ppt = getSlideShow("bug57820-initTableNullRefrenceException.ppt")) {
 
             List<? extends Slide<?, ?>> slides = ppt.getSlides();
             assertEquals(1, slides.size());

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTextRunReWrite.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTextRunReWrite.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTextRunReWrite.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/model/TestTextRunReWrite.java Fri May 14 00:37:50 2021
@@ -17,22 +17,20 @@
 
 package org.apache.poi.hslf.model;
 
+import static org.apache.poi.POIDataSamples.writeOutAndReadBack;
+import static org.apache.poi.hslf.HSLFTestDataSamples.getSlideShow;
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.poi.POIDataSamples;
 import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hslf.usermodel.HSLFTextParagraph;
 import org.apache.poi.hslf.usermodel.HSLFTextRun;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.DocumentEntry;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -41,137 +39,111 @@ import org.junit.jupiter.api.Test;
  *  that we don't break anything in the process.
  */
 public final class TestTextRunReWrite {
-	// HSLFSlideShow primed on the test data
-	private HSLFSlideShow ss;
-
-	/**
-	 * Load up a test PPT file with rich data
-	 */
-	@BeforeEach
-    void setUp() throws Exception {
-        POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
-		String filename = "Single_Coloured_Page_With_Fonts_and_Alignments.ppt";
-		ss = new HSLFSlideShow(slTests.openResourceAsStream(filename));
-    }
-
     @Test
 	void testWritesOutTheSameNonRich() throws IOException {
-    	// Ensure the text lengths are as we'd expect to start with
-    	assertEquals(1, ss.getSlides().size());
-    	assertEquals(2, ss.getSlides().get(0).getTextParagraphs().size());
-
-        // Grab the first text run on the first sheet
-        List<HSLFTextParagraph> tr1 = ss.getSlides().get(0).getTextParagraphs().get(0);
-        List<HSLFTextParagraph> tr2 = ss.getSlides().get(0).getTextParagraphs().get(1);
-
-
-    	assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
-    	assertEquals(179, HSLFTextParagraph.getRawText(tr2).length());
-
-    	assertEquals(1, tr1.size());
-    	assertEquals(30, HSLFTextParagraph.getText(tr1).length());
-    	assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
-    	assertEquals(31, tr1.get(0).getTextRuns().get(0).getCharacterStyle().getCharactersCovered());
-    	assertEquals(31, tr1.get(0).getParagraphStyle().getCharactersCovered());
-
-    	// Set the text to be as it is now
-    	HSLFTextParagraph.setText(tr1, HSLFTextParagraph.getRawText(tr1));
-    	tr1 = ss.getSlides().get(0).getTextParagraphs().get(0);
-
-    	// Check the text lengths are still right
-    	assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
-    	assertEquals(179, HSLFTextParagraph.getRawText(tr2).length());
-
-        assertEquals(1, tr1.size());
-        assertEquals(30, HSLFTextParagraph.getText(tr1).length());
-        assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
-        assertEquals(31, tr1.get(0).getTextRuns().get(0).getCharacterStyle().getCharactersCovered());
-        assertEquals(31, tr1.get(0).getParagraphStyle().getCharactersCovered());
-
-
-		// Write the slideshow out to a byte array
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
-		ss.write(baos);
-
-		// Build an input stream of it
-		ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-
-		// Use POIFS to query that lot
-		POIFSFileSystem npfs = new POIFSFileSystem(bais);
-
-		// Check that the "PowerPoint Document" sections have the same size
-		DirectoryNode oDir = ss.getSlideShowImpl().getDirectory();
-
-		DocumentEntry oProps = (DocumentEntry)oDir.getEntry(HSLFSlideShow.POWERPOINT_DOCUMENT);
-		DocumentEntry nProps = (DocumentEntry)npfs.getRoot().getEntry(HSLFSlideShow.POWERPOINT_DOCUMENT);
-		assertEquals(oProps.getSize(),nProps.getSize());
-
-		// Check that they contain the same data
-		byte[] _oData = new byte[oProps.getSize()];
-		byte[] _nData = new byte[nProps.getSize()];
-		oDir.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT).read(_oData);
-		npfs.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT).read(_nData);
-		assertArrayEquals(_oData, _nData);
-
-		npfs.close();
+		try (HSLFSlideShow ppt1 = getSlideShow("Single_Coloured_Page_With_Fonts_and_Alignments.ppt")) {
+			// Ensure the text lengths are as we'd expect to start with
+			assertEquals(1, ppt1.getSlides().size());
+			assertEquals(2, ppt1.getSlides().get(0).getTextParagraphs().size());
+
+			// Grab the first text run on the first sheet
+			List<HSLFTextParagraph> tr1 = ppt1.getSlides().get(0).getTextParagraphs().get(0);
+			List<HSLFTextParagraph> tr2 = ppt1.getSlides().get(0).getTextParagraphs().get(1);
+
+
+			assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
+			assertEquals(179, HSLFTextParagraph.getRawText(tr2).length());
+
+			assertEquals(1, tr1.size());
+			assertEquals(30, HSLFTextParagraph.getText(tr1).length());
+			assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
+			assertEquals(31, tr1.get(0).getTextRuns().get(0).getCharacterStyle().getCharactersCovered());
+			assertEquals(31, tr1.get(0).getParagraphStyle().getCharactersCovered());
+
+			// Set the text to be as it is now
+			HSLFTextParagraph.setText(tr1, HSLFTextParagraph.getRawText(tr1));
+			tr1 = ppt1.getSlides().get(0).getTextParagraphs().get(0);
+
+			// Check the text lengths are still right
+			assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
+			assertEquals(179, HSLFTextParagraph.getRawText(tr2).length());
+
+			assertEquals(1, tr1.size());
+			assertEquals(30, HSLFTextParagraph.getText(tr1).length());
+			assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
+			assertEquals(31, tr1.get(0).getTextRuns().get(0).getCharacterStyle().getCharactersCovered());
+			assertEquals(31, tr1.get(0).getParagraphStyle().getCharactersCovered());
+
+			// Use POIFS to query that lot
+			try (POIFSFileSystem npfs = writeOutAndReadBack(ppt1.getDirectory().getFileSystem())) {
+				// Check that the "PowerPoint Document" sections have the same size
+				DirectoryNode oDir = ppt1.getSlideShowImpl().getDirectory();
+
+				DocumentEntry oProps = (DocumentEntry) oDir.getEntry(HSLFSlideShow.POWERPOINT_DOCUMENT);
+				DocumentEntry nProps = (DocumentEntry) npfs.getRoot().getEntry(HSLFSlideShow.POWERPOINT_DOCUMENT);
+				assertEquals(oProps.getSize(), nProps.getSize());
+
+				// Check that they contain the same data
+				byte[] _oData = new byte[oProps.getSize()];
+				byte[] _nData = new byte[nProps.getSize()];
+				int oLen = oDir.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT).read(_oData);
+				int nLen = npfs.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT).read(_nData);
+				assertEquals(_oData.length, oLen);
+				assertEquals(_nData.length, nLen);
+				assertArrayEquals(_oData, _nData);
+			}
+		}
 	}
 
     @Test
     void testWritesOutTheSameRich() throws IOException {
-    	// Grab the first text run on the first sheet
-    	List<HSLFTextParagraph> tr1 = ss.getSlides().get(0).getTextParagraphs().get(0);
-
-    	// Get the first rich text run
-    	HSLFTextRun rtr1 = tr1.get(0).getTextRuns().get(0);
-
-
-    	// Check that the text sizes are as expected
-    	assertEquals(1, tr1.get(0).getTextRuns().size());
-        assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
-    	assertEquals(30, rtr1.getLength());
-    	assertEquals(30, rtr1.getRawText().length());
-    	assertEquals(31, rtr1.getCharacterStyle().getCharactersCovered());
-    	assertEquals(31, tr1.get(0).getParagraphStyle().getCharactersCovered());
-
-    	// Set the text to be as it is now
-    	rtr1.setText( rtr1.getRawText() );
-    	rtr1 = tr1.get(0).getTextRuns().get(0);
-
-    	// Check that the text sizes are still as expected
-    	assertEquals(1, tr1.get(0).getTextRuns().size());
-    	assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
-    	assertEquals(30, tr1.get(0).getTextRuns().get(0).getRawText().length());
-    	assertEquals(30, rtr1.getLength());
-    	assertEquals(30, rtr1.getRawText().length());
-    	assertEquals(31, rtr1.getCharacterStyle().getCharactersCovered());
-    	assertEquals(31, tr1.get(0).getParagraphStyle().getCharactersCovered());
-
-
-		// Write the slideshow out to a byte array
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
-		ss.write(baos);
-
-		// Build an input stream of it
-		ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-
-		// Use POIFS to query that lot
-		POIFSFileSystem npfs = new POIFSFileSystem(bais);
-
-		// Check that the "PowerPoint Document" sections have the same size
-        DirectoryNode oDir = ss.getSlideShowImpl().getDirectory();
-
-		DocumentEntry oProps = (DocumentEntry)oDir.getEntry(HSLFSlideShow.POWERPOINT_DOCUMENT);
-		DocumentEntry nProps = (DocumentEntry)npfs.getRoot().getEntry(HSLFSlideShow.POWERPOINT_DOCUMENT);
-		assertEquals(oProps.getSize(),nProps.getSize());
-
-		// Check that they contain the same data
-		byte[] _oData = new byte[oProps.getSize()];
-		byte[] _nData = new byte[nProps.getSize()];
-
-		oDir.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT).read(_oData);
-		npfs.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT).read(_nData);
-		assertArrayEquals(_oData, _nData);
-
-		npfs.close();
+		try (HSLFSlideShow ppt1 = getSlideShow("Single_Coloured_Page_With_Fonts_and_Alignments.ppt")) {
+			// Grab the first text run on the first sheet
+			List<HSLFTextParagraph> tr1 = ppt1.getSlides().get(0).getTextParagraphs().get(0);
+
+			// Get the first rich text run
+			HSLFTextRun rtr1 = tr1.get(0).getTextRuns().get(0);
+
+			// Check that the text sizes are as expected
+			assertEquals(1, tr1.get(0).getTextRuns().size());
+			assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
+			assertEquals(30, rtr1.getLength());
+			assertEquals(30, rtr1.getRawText().length());
+			assertEquals(31, rtr1.getCharacterStyle().getCharactersCovered());
+			assertEquals(31, tr1.get(0).getParagraphStyle().getCharactersCovered());
+
+			// Set the text to be as it is now
+			rtr1.setText(rtr1.getRawText());
+			rtr1 = tr1.get(0).getTextRuns().get(0);
+
+			// Check that the text sizes are still as expected
+			assertEquals(1, tr1.get(0).getTextRuns().size());
+			assertEquals(30, HSLFTextParagraph.getRawText(tr1).length());
+			assertEquals(30, tr1.get(0).getTextRuns().get(0).getRawText().length());
+			assertEquals(30, rtr1.getLength());
+			assertEquals(30, rtr1.getRawText().length());
+			assertEquals(31, rtr1.getCharacterStyle().getCharactersCovered());
+			assertEquals(31, tr1.get(0).getParagraphStyle().getCharactersCovered());
+
+			// Use POIFS to query that lot
+			try (POIFSFileSystem npfs = writeOutAndReadBack(ppt1.getDirectory().getFileSystem())) {
+				// Check that the "PowerPoint Document" sections have the same size
+				DirectoryNode oDir = ppt1.getSlideShowImpl().getDirectory();
+
+				DocumentEntry oProps = (DocumentEntry) oDir.getEntry(HSLFSlideShow.POWERPOINT_DOCUMENT);
+				DocumentEntry nProps = (DocumentEntry) npfs.getRoot().getEntry(HSLFSlideShow.POWERPOINT_DOCUMENT);
+				assertEquals(oProps.getSize(), nProps.getSize());
+
+				// Check that they contain the same data
+				byte[] _oData = new byte[oProps.getSize()];
+				byte[] _nData = new byte[nProps.getSize()];
+
+				int oLen = oDir.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT).read(_oData);
+				int nLen = npfs.createDocumentInputStream(HSLFSlideShow.POWERPOINT_DOCUMENT).read(_nData);
+				assertEquals(_oData.length, oLen);
+				assertEquals(_nData.length, nLen);
+				assertArrayEquals(_oData, _nData);
+			}
+		}
 	}
 }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestAnimationInfoAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestAnimationInfoAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestAnimationInfoAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestAnimationInfoAtom.java Fri May 14 00:37:50 2021
@@ -23,8 +23,7 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -66,7 +65,7 @@ public final class TestAnimationInfoAtom
     @Test
     void testWrite() throws Exception {
         AnimationInfoAtom record = new AnimationInfoAtom(data, 0, data.length);
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         record.writeOut(baos);
         byte[] b = baos.toByteArray();
 
@@ -82,7 +81,7 @@ public final class TestAnimationInfoAtom
         record.setFlag(AnimationInfoAtom.Play, true);
         record.setFlag(AnimationInfoAtom.Synchronous, true);
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         record.writeOut(baos);
         byte[] b = baos.toByteArray();
 

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCString.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCString.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCString.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCString.java Fri May 14 00:37:50 2021
@@ -18,11 +18,11 @@
 package org.apache.poi.hslf.record;
 
 
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -70,24 +70,16 @@ public final class TestCString {
 	@Test
 	void testWrite() throws Exception {
 		CString ca = new CString(data_a, 0, data_a.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		ca.writeOut(baos);
 		byte[] b = baos.toByteArray();
-
-		assertEquals(data_a.length, b.length);
-		for(int i=0; i<data_a.length; i++) {
-			assertEquals(data_a[i],b[i]);
-		}
+		assertArrayEquals(data_a, b);
 
 		CString cb = new CString(data_b, 0, data_a.length);
-		ByteArrayOutputStream baosB = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baosB = new UnsynchronizedByteArrayOutputStream();
 		cb.writeOut(baosB);
 		b = baosB.toByteArray();
-
-		assertEquals(data_b.length, b.length);
-		for(int i=0; i<data_b.length; i++) {
-			assertEquals(data_b[i],b[i]);
-		}
+		assertArrayEquals(data_b, b);
 	}
 
 	// Turn data_a into data_b
@@ -107,14 +99,9 @@ public final class TestCString {
 		}
 		assertFalse(equals, "Arrays should not be equals");
 
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		ca.writeOut(baos);
 		byte[] b = baos.toByteArray();
-
-		// Should now be the same
-		assertEquals(data_b.length, b.length);
-		for(int i=0; i<data_b.length; i++) {
-			assertEquals(data_b[i],b[i]);
-		}
+		assertArrayEquals(data_b, b);
 	}
 }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestColorSchemeAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestColorSchemeAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestColorSchemeAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestColorSchemeAtom.java Fri May 14 00:37:50 2021
@@ -18,10 +18,10 @@
 package org.apache.poi.hslf.record;
 
 
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -81,13 +81,10 @@ public final class TestColorSchemeAtom {
 	@Test
 	void testWrite() throws Exception {
 		ColorSchemeAtom csa = new ColorSchemeAtom(data_a,0,data_a.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		csa.writeOut(baos);
 		byte[] b = baos.toByteArray();
 
-		assertEquals(data_a.length, b.length);
-		for(int i=0; i<data_a.length; i++) {
-			assertEquals(data_a[i],b[i]);
-		}
+		assertArrayEquals(data_a, b);
 	}
 }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000.java Fri May 14 00:37:50 2021
@@ -18,16 +18,17 @@
 package org.apache.poi.hslf.record;
 
 
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayOutputStream;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.util.LocaleUtil;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -143,14 +144,10 @@ public final class TestComment2000 {
     @Test
     void testWrite() throws Exception {
 		Comment2000 ca = new Comment2000(data_a, 0, data_a.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		ca.writeOut(baos);
 		byte[] b = baos.toByteArray();
-
-		assertEquals(data_a.length, b.length);
-		for(int i=0; i<data_a.length; i++) {
-			assertEquals(data_a[i],b[i]);
-		}
+		assertArrayEquals(data_a, b);
 	}
 
 	// Change a few things
@@ -199,22 +196,16 @@ public final class TestComment2000 {
 		assertFalse(equals, "Arrays should not be equals");
 
 		// Check bytes are now the same
-		ByteArrayOutputStream baosa = new ByteArrayOutputStream();
-		ByteArrayOutputStream baosn = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baosa = new UnsynchronizedByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baosn = new UnsynchronizedByteArrayOutputStream();
 		ca.writeOut(baosa);
 		cn.writeOut(baosn);
 		byte[] ba = baosa.toByteArray();
 		byte[] bn = baosn.toByteArray();
 
 		// Should now be the same
-		assertEquals(data_b.length, ba.length);
-		for(int i=0; i<data_b.length; i++) {
-			assertEquals(data_b[i],ba[i]);
-		}
-		assertEquals(data_b.length, bn.length);
-		for(int i=0; i<data_b.length; i++) {
-			assertEquals(data_b[i],bn[i]);
-		}
+		assertArrayEquals(data_b, ba);
+		assertArrayEquals(data_b, bn);
 	}
 
     /**

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000Atom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000Atom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000Atom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestComment2000Atom.java Fri May 14 00:37:50 2021
@@ -18,13 +18,14 @@
 package org.apache.poi.hslf.record;
 
 
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.io.ByteArrayOutputStream;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.util.LocaleUtil;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -35,18 +36,18 @@ import org.junit.jupiter.api.Test;
 public final class TestComment2000Atom {
 	// From a real file
 	private final byte[] data_a = new byte[] {
-		00, 00, 0xE1-256, 0x2E, 0x1C, 00, 00, 00,
-		01, 00, 00, 00, 0xD6-256, 07, 01, 00,
-		02, 00, 0x18, 00, 0x0A, 00, 0x1A, 00,
-		0x0F, 00, 0xCD-256, 00, 0x92-256, 00,
-		00,	00, 0x92-256, 00, 00, 00
+		0, 0, 0xE1-256, 0x2E, 0x1C, 0, 0, 0,
+		1, 0, 0, 0, 0xD6-256, 7, 1, 0,
+		2, 0, 0x18, 0, 0x0A, 0, 0x1A, 0,
+		0x0F, 0, 0xCD-256, 0, 0x92-256, 0,
+		0,	0, 0x92-256, 0, 0, 0
 	};
 	private final byte[] data_b = new byte[] {
-		00, 00, 0xE1-256, 0x2E, 0x1C, 00, 00, 00,
-		05, 00, 00, 00, 0xD6-256, 0x07, 01, 00,
-		02, 00, 0x18, 00, 0x15, 00, 0x19, 00, 03,
-		00, 0xD5-256, 02, 0x0A, 00, 00, 00,
-		0x0E, 00, 00, 00
+		0, 0, 0xE1-256, 0x2E, 0x1C, 0, 0, 0,
+		5, 0, 0, 0, 0xD6-256, 0x07, 1, 0,
+		2, 0, 0x18, 0, 0x15, 0, 0x19, 0, 3,
+		0, 0xD5-256, 2, 0x0A, 0, 0, 0,
+		0x0E, 0, 0, 0
 		};
 
     private static SimpleDateFormat sdf;
@@ -60,7 +61,7 @@ public final class TestComment2000Atom {
 	@Test
 	void testRecordType() {
 		Comment2000Atom ca = new Comment2000Atom(data_a, 0, data_a.length);
-		assertEquals(12001l, ca.getRecordType());
+		assertEquals(12001L, ca.getRecordType());
 	}
 
 	@Test
@@ -105,14 +106,10 @@ public final class TestComment2000Atom {
 	@Test
     void testWrite() throws Exception {
 		Comment2000Atom ca = new Comment2000Atom(data_a, 0, data_a.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		ca.writeOut(baos);
 		byte[] b = baos.toByteArray();
-
-		assertEquals(data_a.length, b.length);
-		for(int i=0; i<data_a.length; i++) {
-			assertEquals(data_a[i],b[i]);
-		}
+		assertArrayEquals(data_a, b);
 	}
 
 	// Create A from scratch
@@ -130,14 +127,10 @@ public final class TestComment2000Atom {
 		a.setDate(date_a);
 
 		// Check it's now the same as a
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		a.writeOut(baos);
 		byte[] b = baos.toByteArray();
-
-		assertEquals(data_a.length, b.length);
-		for(int i=0; i<data_a.length; i++) {
-			assertEquals(data_a[i],b[i]);
-		}
+		assertArrayEquals(data_a, b);
 	}
 
 	// Try to turn a into b
@@ -157,14 +150,9 @@ public final class TestComment2000Atom {
 		ca.setYOffset(0x0E);
 
 		// Check bytes are now the same
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		ca.writeOut(baos);
 		byte[] b = baos.toByteArray();
-
-		// Should now be the same
-		assertEquals(data_b.length, b.length);
-		for(int i=0; i<data_b.length; i++) {
-			assertEquals(data_b[i],b[i]);
-		}
+		assertArrayEquals(data_b, b);
 	}
 }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCurrentUserAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCurrentUserAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCurrentUserAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestCurrentUserAtom.java Fri May 14 00:37:50 2021
@@ -21,9 +21,9 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
-import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException;
 import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
@@ -89,7 +89,7 @@ public final class TestCurrentUserAtom {
 		cu.setCurrentEditOffset(0x2942);
 
 		// Check it matches
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		cu.writeOut(baos);
 		byte[] out = baos.toByteArray();
 

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentAtom.java Fri May 14 00:37:50 2021
@@ -23,8 +23,7 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -41,7 +40,7 @@ public final class TestDocumentAtom {
 	@Test
     void testRecordType() {
 		DocumentAtom da = new DocumentAtom(data_a, 0, data_a.length);
-		assertEquals(1001l, da.getRecordType());
+		assertEquals(1001L, da.getRecordType());
 	}
 
 	@Test
@@ -67,7 +66,7 @@ public final class TestDocumentAtom {
 	void testSlideDetails() {
 		DocumentAtom da = new DocumentAtom(data_a, 0, data_a.length);
 		assertEquals(1, da.getFirstSlideNum());
-		assertEquals(0, da.getSlideSizeType());
+		assertEquals(DocumentAtom.SlideSize.ON_SCREEN, da.getSlideSizeTypeEnum());
 	}
 
 	@Test
@@ -82,7 +81,7 @@ public final class TestDocumentAtom {
 	@Test
 	void testWrite() throws Exception {
 		DocumentAtom da = new DocumentAtom(data_a, 0, data_a.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		da.writeOut(baos);
 		assertArrayEquals(data_a, baos.toByteArray());
 	}

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentEncryption.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentEncryption.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentEncryption.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentEncryption.java Fri May 14 00:37:50 2021
@@ -23,12 +23,12 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
 import java.security.MessageDigest;
 import java.util.List;
 
 import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hpsf.DocumentSummaryInformation;
 import org.apache.poi.hpsf.PropertySet;
@@ -44,7 +44,6 @@ import org.apache.poi.poifs.crypt.Crypto
 import org.apache.poi.poifs.crypt.EncryptionInfo;
 import org.apache.poi.poifs.crypt.HashAlgorithm;
 import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIDecryptor;
-import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptionHeader;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -86,12 +85,12 @@ public class TestDocumentEncryption {
             DocumentEncryptionAtom documentEncryptionAtom = hss.getDocumentEncryptionAtom();
             assertNotNull(documentEncryptionAtom);
             EncryptionInfo ei = documentEncryptionAtom.getEncryptionInfo();
-            ((CryptoAPIEncryptionHeader) ei.getHeader()).setKeySize(0x78);
+            ei.getHeader().setKeySize(0x78);
 
-            ByteArrayOutputStream bos = new ByteArrayOutputStream();
+            UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
             hss.write(bos);
 
-            try (POIFSFileSystem fs2 = new POIFSFileSystem(new ByteArrayInputStream(bos.toByteArray()));
+            try (POIFSFileSystem fs2 = new POIFSFileSystem(bos.toInputStream());
                  HSLFSlideShowImpl hss2 = new HSLFSlideShowImpl(fs2)) {
                 List<HSLFPictureData> picsActual = hss2.getPictureData();
 
@@ -109,9 +108,9 @@ public class TestDocumentEncryption {
     void cryptoAPIEncryption() throws Exception {
         /* documents with multiple edits need to be normalized for encryption */
         String pptFile = "57272_corrupted_usereditatom.ppt";
-        ByteArrayOutputStream encrypted = new ByteArrayOutputStream();
-        ByteArrayOutputStream expected = new ByteArrayOutputStream();
-        ByteArrayOutputStream actual = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream encrypted = new UnsynchronizedByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream expected = new UnsynchronizedByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream actual = new UnsynchronizedByteArrayOutputStream();
         try {
             try (POIFSFileSystem fs = new POIFSFileSystem(slTests.getFile(pptFile), true);
                  HSLFSlideShowImpl hss = new HSLFSlideShowImpl(fs)) {
@@ -126,8 +125,9 @@ public class TestDocumentEncryption {
             }
 
             // decrypted
-            ByteArrayInputStream bis = new ByteArrayInputStream(encrypted.toByteArray());
-            try (POIFSFileSystem fs = new POIFSFileSystem(bis);
+
+            try (InputStream bis = encrypted.toInputStream();
+                 POIFSFileSystem fs = new POIFSFileSystem(bis);
                  HSLFSlideShowImpl hss = new HSLFSlideShowImpl(fs)) {
                 Biff8EncryptionKey.setCurrentUserPassword(null);
                 hss.write(actual);

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExControl.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExControl.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExControl.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExControl.java Fri May 14 00:37:50 2021
@@ -22,8 +22,7 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -93,7 +92,7 @@ public final class TestExControl {
 	@Test
 	void testWrite() throws Exception {
 		ExControl record = new ExControl(data, 0, data.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		assertArrayEquals(data, baos.toByteArray());
 	}
@@ -116,7 +115,7 @@ public final class TestExControl {
 		record.setProgId("ShockwaveFlash.ShockwaveFlash.9");
 		record.setClipboardName("Shockwave Flash Object");
 
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		assertArrayEquals(data, baos.toByteArray());
 	}

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlink.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlink.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlink.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlink.java Fri May 14 00:37:50 2021
@@ -22,11 +22,11 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
@@ -46,14 +46,14 @@ public final class TestExHyperlink {
 	    ExHyperlink exHyperlink = new ExHyperlink(exHyperlinkBytes, 0, exHyperlinkBytes.length);
 
 
-	    assertEquals(4055l, exHyperlink.getRecordType());
+	    assertEquals(4055L, exHyperlink.getRecordType());
         assertEquals(3, exHyperlink.getExHyperlinkAtom().getNumber());
         String expURL = "http://jakarta.apache.org/poi/hssf/";
         assertEquals(expURL, exHyperlink.getLinkURL());
         assertEquals(expURL, exHyperlink._getDetailsA());
         assertEquals(expURL, exHyperlink._getDetailsB());
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         exHyperlink.writeOut(baos);
         assertArrayEquals(exHyperlinkBytes, baos.toByteArray());
 	}

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlinkAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlinkAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlinkAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExHyperlinkAtom.java Fri May 14 00:37:50 2021
@@ -21,8 +21,7 @@ package org.apache.poi.hslf.record;
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -57,7 +56,7 @@ public class TestExHyperlinkAtom {
 	@Test
 	void testWrite() throws Exception {
     	ExHyperlinkAtom eha = new ExHyperlinkAtom(data_a, 0, data_a.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		eha.writeOut(baos);
 		assertArrayEquals(data_a, baos.toByteArray());
 	}
@@ -71,7 +70,7 @@ public class TestExHyperlinkAtom {
 		eha.setNumber(1);
 
 		// Check it's now the same as a
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		eha.writeOut(baos);
 		assertArrayEquals(data_a, baos.toByteArray());
 	}
@@ -85,7 +84,7 @@ public class TestExHyperlinkAtom {
 		eha.setNumber(4);
 
 		// Check bytes are now the same
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		eha.writeOut(baos);
 		assertArrayEquals(data_b, baos.toByteArray());
 	}

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExMediaAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExMediaAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExMediaAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExMediaAtom.java Fri May 14 00:37:50 2021
@@ -23,8 +23,7 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -50,7 +49,7 @@ public final class TestExMediaAtom {
 	@Test
 	void testWrite() throws Exception {
 		ExMediaAtom record = new ExMediaAtom(data, 0, data.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		byte[] b = baos.toByteArray();
 
@@ -68,7 +67,7 @@ public final class TestExMediaAtom {
 		record.setFlag(HeadersFootersAtom.fHasTodayDate, false);
 		record.setFlag(HeadersFootersAtom.fHasFooter, false);
 
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		byte[] b = baos.toByteArray();
 

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExObjListAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExObjListAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExObjListAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExObjListAtom.java Fri May 14 00:37:50 2021
@@ -20,8 +20,7 @@ package org.apache.poi.hslf.record;
 
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.ss.formula.functions.BaseTestNumeric;
 import org.junit.jupiter.api.Test;
 
@@ -57,7 +56,7 @@ public class TestExObjListAtom {
 	@Test
 	void testWrite() throws Exception {
 		ExObjListAtom eoa = new ExObjListAtom(data_a, 0, data_a.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		eoa.writeOut(baos);
 		assertArrayEquals(data_a, baos.toByteArray());
 	}
@@ -71,7 +70,7 @@ public class TestExObjListAtom {
 		eoa.setObjectIDSeed(1);
 
 		// Check it's now the same as a
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		eoa.writeOut(baos);
 		assertArrayEquals(data_a, baos.toByteArray());
 	}
@@ -85,7 +84,7 @@ public class TestExObjListAtom {
 		eoa.setObjectIDSeed(4);
 
 		// Check bytes are now the same
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		eoa.writeOut(baos);
 		assertArrayEquals(data_b, baos.toByteArray());
 	}

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjAtom.java Fri May 14 00:37:50 2021
@@ -20,8 +20,7 @@ package org.apache.poi.hslf.record;
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -50,7 +49,7 @@ public final class TestExOleObjAtom {
 	@Test
 	void testWrite() throws Exception {
 		ExOleObjAtom record = new ExOleObjAtom(data, 0, data.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		assertArrayEquals(data, baos.toByteArray());
 	}
@@ -65,7 +64,7 @@ public final class TestExOleObjAtom {
 		record.setObjStgDataRef(2);
 		record.setOptions(1283584);
 
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		assertArrayEquals(data, baos.toByteArray());
 	}

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjStg.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjStg.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjStg.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExOleObjStg.java Fri May 14 00:37:50 2021
@@ -22,12 +22,12 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.poifs.filesystem.DocumentEntry;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.util.IOUtils;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
@@ -58,7 +58,7 @@ public final class TestExOleObjStg {
         assertEquals(RecordTypes.ExOleObjStg.typeID, record.getRecordType());
 
         int len = record.getDataLength();
-        byte[] oledata = readAll(record.getData());
+        byte[] oledata = IOUtils.toByteArray(record.getData());
         assertEquals(len, oledata.length);
 
         try (POIFSFileSystem fs = new POIFSFileSystem(record.getData())) {
@@ -70,7 +70,7 @@ public final class TestExOleObjStg {
     @Test
     void testWrite() throws Exception {
         ExOleObjStg record = new ExOleObjStg(data, 0, data.length);
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         record.writeOut(baos);
         byte[] b = baos.toByteArray();
 
@@ -80,7 +80,7 @@ public final class TestExOleObjStg {
     @Test
     void testNewRecord() throws Exception {
         ExOleObjStg src = new ExOleObjStg(data, 0, data.length);
-        byte[] oledata = readAll(src.getData());
+        byte[] oledata = IOUtils.toByteArray(src.getData());
 
         ExOleObjStg tgt = new ExOleObjStg();
         tgt.setData(oledata);
@@ -88,22 +88,11 @@ public final class TestExOleObjStg {
 
         assertEquals(src.getDataLength(), tgt.getDataLength());
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream();
         tgt.writeOut(out);
         byte[] b = out.toByteArray();
 
         assertEquals(data.length, b.length);
         assertArrayEquals(data, b);
     }
-
-    private byte[] readAll(InputStream is) throws IOException {
-        int pos;
-        byte[] chunk = new byte[1024];
-        ByteArrayOutputStream out = new  ByteArrayOutputStream();
-        while((pos = is.read(chunk)) > 0){
-            out.write(chunk, 0, pos);
-        }
-        return out.toByteArray();
-
-    }
 }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExVideoContainer.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExVideoContainer.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExVideoContainer.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestExVideoContainer.java Fri May 14 00:37:50 2021
@@ -23,8 +23,7 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -68,7 +67,7 @@ public final class TestExVideoContainer
     @Test
     void testWrite() throws Exception {
         ExVideoContainer record = new ExVideoContainer(data, 0, data.length);
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         record.writeOut(baos);
         assertArrayEquals(data, baos.toByteArray());
     }
@@ -79,7 +78,7 @@ public final class TestExVideoContainer
         record.getExMediaAtom().setObjectId(1);
         record.getPathAtom().setText("D:\\projects\\SchulerAG\\mcom_v_1_0_4\\view\\data\\tests\\images\\cards.mpg");
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         record.writeOut(baos);
         assertArrayEquals(data, baos.toByteArray());
     }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestFontCollection.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestFontCollection.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestFontCollection.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestFontCollection.java Fri May 14 00:37:50 2021
@@ -19,12 +19,13 @@ package org.apache.poi.hslf.record;
 
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hslf.usermodel.HSLFFontInfo;
 import org.apache.poi.hslf.usermodel.HSLFFontInfoPredefined;
@@ -78,16 +79,22 @@ public final class TestFontCollection {
         assertEquals(child.length, 3);
 
         // Check we get the right font name for the indicies
-        assertEquals("Times New Roman", fonts.getFontInfo(0).getTypeface());
-        assertEquals("Helvetica", fonts.getFontInfo(1).getTypeface());
-        assertEquals("Arial", fonts.getFontInfo(2).getTypeface());
+        fi = fonts.getFontInfo(0);
+        assertNotNull(fi);
+        assertEquals("Times New Roman", fi.getTypeface());
+        fi = fonts.getFontInfo(1);
+        assertNotNull(fi);
+        assertEquals("Helvetica", fi.getTypeface());
+        fi = fonts.getFontInfo(2);
+        assertNotNull(fi);
+        assertEquals("Arial", fi.getTypeface());
         assertNull(fonts.getFontInfo(3));
     }
 
     @Test
     void testWrite() throws Exception {
         FontCollection fonts = new FontCollection(data, 0, data.length);
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream();
         fonts.writeOut(out);
         byte[] recdata = out.toByteArray();
         assertArrayEquals(recdata, data);

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersAtom.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersAtom.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersAtom.java Fri May 14 00:37:50 2021
@@ -23,8 +23,7 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -55,7 +54,7 @@ public final class TestHeadersFootersAto
     @Test
 	void testWrite() throws Exception {
 		HeadersFootersAtom record = new HeadersFootersAtom(data, 0, data.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		assertArrayEquals(data, baos.toByteArray());
 	}
@@ -67,7 +66,7 @@ public final class TestHeadersFootersAto
         record.setFlag(HeadersFootersAtom.fHasTodayDate, true);
         record.setFlag(HeadersFootersAtom.fHasFooter, true);
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         record.writeOut(baos);
         assertArrayEquals(data, baos.toByteArray());
     }

Modified: poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersContainer.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersContainer.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersContainer.java (original)
+++ poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestHeadersFootersContainer.java Fri May 14 00:37:50 2021
@@ -23,8 +23,7 @@ import static org.junit.jupiter.api.Asse
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
-import java.io.ByteArrayOutputStream;
-
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -76,7 +75,7 @@ public final class TestHeadersFootersCon
     @Test
 	void testWriteSlideHeadersFootersContainer() throws Exception {
 		HeadersFootersContainer record = new HeadersFootersContainer(slideData, 0, slideData.length);
-		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		assertArrayEquals(slideData, baos.toByteArray());
 	}
@@ -100,7 +99,7 @@ public final class TestHeadersFootersCon
         assertEquals(HeadersFootersContainer.FOOTERATOM, csFooter.getOptions() >> 4);
         csFooter.setText("My Footer - 1");
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         record.writeOut(baos);
         assertArrayEquals(slideData, baos.toByteArray());
     }
@@ -129,7 +128,7 @@ public final class TestHeadersFootersCon
     @Test
 	void testWriteNotesHeadersFootersContainer() throws Exception {
 		HeadersFootersContainer record = new HeadersFootersContainer(notesData, 0, notesData.length);
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
 		record.writeOut(baos);
 		assertArrayEquals(notesData, baos.toByteArray());
 	}
@@ -161,7 +160,7 @@ public final class TestHeadersFootersCon
         assertEquals(HeadersFootersContainer.FOOTERATOM, csFooter.getOptions() >> 4);
         csFooter.setText("Note Footer");
 
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream();
         record.writeOut(baos);
         assertArrayEquals(notesData, baos.toByteArray());
     }



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