This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push: new 61c1b0d Add StringInputStream. 61c1b0d is described below commit 61c1b0d16a65a0a8d414b46b470166a7ffb35b28 Author: Gary Gregory <gardgreg...@gmail.com> AuthorDate: Mon Jul 12 13:55:17 2021 -0400 Add StringInputStream. --- src/changes/changes.xml | 3 + .../java/org/apache/commons/io/CopyUtilsTest.java | 3 +- .../java/org/apache/commons/io/DemuxTestCase.java | 3 +- .../org/apache/commons/io/IOUtilsTestCase.java | 4 +- .../commons/io/input/BOMInputStreamTest.java | 5 +- .../commons/io/input/BoundedInputStreamTest.java | 4 +- .../commons/io/input/CountingInputStreamTest.java | 9 +-- .../MessageDigestCalculatingInputStreamTest.java | 5 +- .../apache/commons/io/input/StringInputStream.java | 78 ++++++++++++++++++++++ .../commons/io/input/StringInputStreamTest.java | 47 +++++++++++++ .../io/input/SwappedDataInputStreamTest.java | 2 +- .../io/input/WindowsLineEndingInputStreamTest.java | 37 +++++----- .../commons/io/input/XmlStreamReaderTest.java | 16 ++--- .../io/input/XmlStreamReaderUtilitiesTest.java | 3 +- .../buffer/CircularBufferInputStreamTest.java | 25 +++---- .../XmlStreamReaderUtilitiesCompatibilityTest.java | 4 +- 16 files changed, 184 insertions(+), 64 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index eb87396..94de675 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -63,6 +63,9 @@ The <action> type attribute can be add,update,fix,remove. <action dev="ggregory" type="add" due-to="Gary Gregory"> Add UncheckedFilterWriter. </action> + <action dev="ggregory" type="add" due-to="Gary Gregory"> + Add StringInputStream. + </action> <!-- UPDATE --> <action dev="ggregory" type="update" due-to="Dependabot"> Bump Maven Javadoc plugin from 3.2.0 to 3.3.0. diff --git a/src/test/java/org/apache/commons/io/CopyUtilsTest.java b/src/test/java/org/apache/commons/io/CopyUtilsTest.java index 623bc06..9d1e3a3 100644 --- a/src/test/java/org/apache/commons/io/CopyUtilsTest.java +++ b/src/test/java/org/apache/commons/io/CopyUtilsTest.java @@ -27,6 +27,7 @@ import java.io.StringWriter; import java.io.Writer; import java.nio.charset.StandardCharsets; +import org.apache.commons.io.input.StringInputStream; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.io.test.TestUtils; import org.apache.commons.io.test.ThrowOnCloseInputStream; @@ -136,7 +137,7 @@ public class CopyUtilsTest { final String inDataStr = "data"; final String charsetName = "UTF-8"; final StringWriter writer = new StringWriter(); - CopyUtils.copy(new ByteArrayInputStream(inDataStr.getBytes(charsetName)), writer, charsetName); + CopyUtils.copy(new StringInputStream(inDataStr, charsetName), writer, charsetName); assertEquals(inDataStr, writer.toString()); } diff --git a/src/test/java/org/apache/commons/io/DemuxTestCase.java b/src/test/java/org/apache/commons/io/DemuxTestCase.java index 7ab756d..f3a2e01 100644 --- a/src/test/java/org/apache/commons/io/DemuxTestCase.java +++ b/src/test/java/org/apache/commons/io/DemuxTestCase.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.Random; import org.apache.commons.io.input.DemuxInputStream; +import org.apache.commons.io.input.StringInputStream; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.commons.io.output.DemuxOutputStream; import org.apache.commons.io.test.TestUtils; @@ -93,7 +94,7 @@ public class DemuxTestCase { private void startReader(final String name, final String data, final DemuxInputStream demux) { - final ByteArrayInputStream input = new ByteArrayInputStream(data.getBytes()); + final InputStream input = new StringInputStream(data); final ReaderThread thread = new ReaderThread(name, input, demux); threadMap.put(name, thread); } diff --git a/src/test/java/org/apache/commons/io/IOUtilsTestCase.java b/src/test/java/org/apache/commons/io/IOUtilsTestCase.java index cff295c..1c59ded 100644 --- a/src/test/java/org/apache/commons/io/IOUtilsTestCase.java +++ b/src/test/java/org/apache/commons/io/IOUtilsTestCase.java @@ -63,6 +63,7 @@ import java.util.List; import org.apache.commons.io.function.IOConsumer; import org.apache.commons.io.input.CircularInputStream; import org.apache.commons.io.input.NullInputStream; +import org.apache.commons.io.input.StringInputStream; import org.apache.commons.io.output.AppendableWriter; import org.apache.commons.io.output.NullOutputStream; import org.apache.commons.io.output.StringBuilderWriter; @@ -976,8 +977,7 @@ public class IOUtilsTestCase { @Test public void testReadFully_InputStream_Offset() throws Exception { - final byte[] bytes = "abcd1234".getBytes(StandardCharsets.UTF_8); - final ByteArrayInputStream stream = new ByteArrayInputStream(bytes); + final StringInputStream stream = new StringInputStream("abcd1234", StandardCharsets.UTF_8); final byte[] buffer = "wx00000000".getBytes(StandardCharsets.UTF_8); IOUtils.readFully(stream, buffer, 2, 8); assertEquals("wxabcd1234", new String(buffer, 0, buffer.length, StandardCharsets.UTF_8)); diff --git a/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java b/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java index 0241454..cfb096f 100644 --- a/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/BOMInputStreamTest.java @@ -777,10 +777,9 @@ public class BOMInputStreamTest { } private boolean doesSaxSupportCharacterSet(final String charSetName) throws ParserConfigurationException, SAXException, IOException { - final byte[] data = ("<?xml version=\"1.0\" encoding=\"" + charSetName + "\"?><Z/>").getBytes(charSetName); final DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - try { - final InputSource is = new InputSource(new ByteArrayInputStream(data)); + try (final StringInputStream byteStream = new StringInputStream("<?xml version=\"1.0\" encoding=\"" + charSetName + "\"?><Z/>", charSetName)) { + final InputSource is = new InputSource(byteStream); is.setEncoding(charSetName); documentBuilder.parse(is); } catch (final SAXParseException e) { diff --git a/src/test/java/org/apache/commons/io/input/BoundedInputStreamTest.java b/src/test/java/org/apache/commons/io/input/BoundedInputStreamTest.java index 8595a7c..f0e6c4e 100644 --- a/src/test/java/org/apache/commons/io/input/BoundedInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/BoundedInputStreamTest.java @@ -33,7 +33,7 @@ public class BoundedInputStreamTest { public void testReadSingle() throws Exception { BoundedInputStream bounded; final byte[] helloWorld = "Hello World".getBytes(); - final byte[] hello = "Hello".getBytes(); + final byte[] hello = "Hello".getBytes(); // limit = length bounded = new BoundedInputStream(new ByteArrayInputStream(helloWorld), helloWorld.length); @@ -62,7 +62,7 @@ public class BoundedInputStreamTest { BoundedInputStream bounded; final byte[] helloWorld = "Hello World".getBytes(); - final byte[] hello = "Hello".getBytes(); + final byte[] hello = "Hello".getBytes(); bounded = new BoundedInputStream(new ByteArrayInputStream(helloWorld)); compare("limit = -1", helloWorld, IOUtils.toByteArray(bounded)); diff --git a/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java b/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java index eb7ab52..4d8f80e 100644 --- a/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java @@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.fail; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; import org.apache.commons.io.IOUtils; import org.junit.jupiter.api.Test; @@ -34,9 +35,7 @@ public class CountingInputStreamTest { @Test public void testCounting() throws Exception { final String text = "A piece of text"; - final byte[] bytes = text.getBytes(); - final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); - try (final CountingInputStream cis = new CountingInputStream(bais)) { + try (final CountingInputStream cis = new CountingInputStream(new StringInputStream(text))) { // have to declare this larger as we're going to read // off the end of the stream and input stream seems @@ -199,9 +198,7 @@ public class CountingInputStreamTest { @Test public void testSkipping() throws IOException { final String text = "Hello World!"; - final byte[] bytes = text.getBytes(); - final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); - try (final CountingInputStream cis = new CountingInputStream(bais)) { + try (final CountingInputStream cis = new CountingInputStream(new StringInputStream(text))) { assertEquals(6, cis.skip(6)); assertEquals(6, cis.getCount()); diff --git a/src/test/java/org/apache/commons/io/input/MessageDigestCalculatingInputStreamTest.java b/src/test/java/org/apache/commons/io/input/MessageDigestCalculatingInputStreamTest.java index 2be1ccb..c620e0f 100644 --- a/src/test/java/org/apache/commons/io/input/MessageDigestCalculatingInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/MessageDigestCalculatingInputStreamTest.java @@ -34,12 +34,11 @@ public class MessageDigestCalculatingInputStreamTest { @Test public void test() throws Exception { - for (int i = 256; i < 8192; i = i*2) { + for (int i = 256; i < 8192; i = i * 2) { final byte[] buffer = generateRandomByteStream(i); final MessageDigest md5Sum = MessageDigest.getInstance("MD5"); final byte[] expect = md5Sum.digest(buffer); - try (final MessageDigestCalculatingInputStream md5InputStream = - new MessageDigestCalculatingInputStream(new ByteArrayInputStream(buffer))) { + try (final MessageDigestCalculatingInputStream md5InputStream = new MessageDigestCalculatingInputStream(new ByteArrayInputStream(buffer))) { md5InputStream.consume(); final byte[] got = md5InputStream.getMessageDigest().digest(); assertArrayEquals(expect, got); diff --git a/src/test/java/org/apache/commons/io/input/StringInputStream.java b/src/test/java/org/apache/commons/io/input/StringInputStream.java new file mode 100644 index 0000000..3600b6c --- /dev/null +++ b/src/test/java/org/apache/commons/io/input/StringInputStream.java @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.commons.io.input; + +import java.io.InputStream; +import java.io.StringReader; +import java.nio.charset.Charset; + +/** + * An {@link InputStream} on a String. + * + * @since 2.12.0 + */ +public class StringInputStream extends ReaderInputStream { + + /** + * Creates a new instance on a String. + * + * @param source The source string, MUST not be null. + * @return A new instance. + */ + public static StringInputStream on(final String source) { + return new StringInputStream(source); + } + + /** + * Creates a new instance on the empty String. + */ + public StringInputStream() { + this("", Charset.defaultCharset()); + } + + /** + * Creates a new instance on a String. + * + * @param source The source string, MUST not be null. + */ + public StringInputStream(final String source) { + this(source, Charset.defaultCharset()); + } + + /** + * Creates a new instance on a String for a Charset. + * + * @param source The source string, MUST not be null. + * @param charset The source charset, MUST not be null. + */ + public StringInputStream(final String source, final Charset charset) { + super(new StringReader(source), charset); + } + + /** + * Creates a new instance on a String and for a Charset. + * + * @param source The source string, MUST not be null. + * @param charset The source charset, MUST not be null. + */ + public StringInputStream(final String source, final String charset) { + super(new StringReader(source), charset); + } + +} diff --git a/src/test/java/org/apache/commons/io/input/StringInputStreamTest.java b/src/test/java/org/apache/commons/io/input/StringInputStreamTest.java new file mode 100644 index 0000000..17f43fb --- /dev/null +++ b/src/test/java/org/apache/commons/io/input/StringInputStreamTest.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.commons.io.input; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.nio.charset.Charset; + +import org.apache.commons.io.IOUtils; +import org.junit.jupiter.api.Test; + +/** + * Tests {@link StringInputStream}. + */ +public class StringInputStreamTest { + + @Test + public void testStrinConstructorString() throws IOException { + try (final StringInputStream input = StringInputStream.on("01")) { + assertEquals("01", IOUtils.toString(input, Charset.defaultCharset())); + } + } + + @Test + public void testStrinConstructorStringCharset() throws IOException { + try (final StringInputStream input = new StringInputStream("01", Charset.defaultCharset())) { + assertEquals("01", IOUtils.toString(input, Charset.defaultCharset())); + } + } +} diff --git a/src/test/java/org/apache/commons/io/input/SwappedDataInputStreamTest.java b/src/test/java/org/apache/commons/io/input/SwappedDataInputStreamTest.java index b943ba8..67f73ed 100644 --- a/src/test/java/org/apache/commons/io/input/SwappedDataInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/SwappedDataInputStreamTest.java @@ -53,7 +53,7 @@ public class SwappedDataInputStreamTest { 0x07, 0x08 }; - final ByteArrayInputStream bais = new ByteArrayInputStream( bytes ); + final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); this.sdis = new SwappedDataInputStream( bais ); } diff --git a/src/test/java/org/apache/commons/io/input/WindowsLineEndingInputStreamTest.java b/src/test/java/org/apache/commons/io/input/WindowsLineEndingInputStreamTest.java index e7e1255..14d0750 100644 --- a/src/test/java/org/apache/commons/io/input/WindowsLineEndingInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/WindowsLineEndingInputStreamTest.java @@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.Test; @@ -27,52 +28,50 @@ import org.junit.jupiter.api.Test; public class WindowsLineEndingInputStreamTest { @Test public void simpleString() throws Exception { - assertEquals( "abc\r\n", roundtrip( "abc" ) ); + assertEquals("abc\r\n", roundtrip("abc")); } @Test public void inTheMiddleOfTheLine() throws Exception { - assertEquals( "a\r\nbc\r\n", roundtrip( "a\r\nbc" ) ); + assertEquals("a\r\nbc\r\n", roundtrip("a\r\nbc")); } @Test public void multipleBlankLines() throws Exception { - assertEquals( "a\r\n\r\nbc\r\n", roundtrip( "a\r\n\r\nbc" ) ); + assertEquals("a\r\n\r\nbc\r\n", roundtrip("a\r\n\r\nbc")); } @Test public void twoLinesAtEnd() throws Exception { - assertEquals( "a\r\n\r\n", roundtrip( "a\r\n\r\n" ) ); + assertEquals("a\r\n\r\n", roundtrip("a\r\n\r\n")); } @Test public void linuxLinefeeds() throws Exception { - final String roundtrip = roundtrip( "ab\nc", false ); - assertEquals( "ab\r\nc", roundtrip ); + final String roundtrip = roundtrip("ab\nc", false); + assertEquals("ab\r\nc", roundtrip); } - @Test public void malformed() throws Exception { - assertEquals( "a\rbc", roundtrip( "a\rbc", false ) ); + assertEquals("a\rbc", roundtrip("a\rbc", false)); } @Test public void retainLineFeed() throws Exception { - assertEquals( "a\r\n\r\n", roundtrip( "a\r\n\r\n", false ) ); - assertEquals( "a", roundtrip( "a", false ) ); + assertEquals("a\r\n\r\n", roundtrip("a\r\n\r\n", false)); + assertEquals("a", roundtrip("a", false)); } - private String roundtrip( final String msg ) throws IOException { - return roundtrip( msg, true ); + private String roundtrip(final String msg) throws IOException { + return roundtrip(msg, true); } - private String roundtrip( final String msg, final boolean ensure ) throws IOException { - final ByteArrayInputStream baos = new ByteArrayInputStream( msg.getBytes(StandardCharsets.UTF_8) ); - final WindowsLineEndingInputStream lf = new WindowsLineEndingInputStream( baos, ensure ); - final byte[] buf = new byte[100]; - final int read = lf.read( buf ); - lf.close(); - return new String( buf, 0, read, StandardCharsets.UTF_8); + private String roundtrip(final String msg, final boolean ensure) throws IOException { + try (final WindowsLineEndingInputStream lf = new WindowsLineEndingInputStream(new StringInputStream(msg, StandardCharsets.UTF_8), ensure)) { + final byte[] buf = new byte[100]; + final int read = lf.read(buf); + return new String(buf, 0, read, StandardCharsets.UTF_8); + } } } \ No newline at end of file diff --git a/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java b/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java index 274542b..9ce760c 100644 --- a/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java +++ b/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java @@ -325,20 +325,20 @@ public class XmlStreamReaderTest { public void testRawContent() throws Exception { final String encoding = "UTF-8"; final String xml = getXML("no-bom", XML3, encoding, encoding); - final ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes(encoding)); - final XmlStreamReader xmlReader = new XmlStreamReader(is); - assertEquals(xmlReader.getEncoding(), encoding, "Check encoding"); - assertEquals(xml, IOUtils.toString(xmlReader), "Check content"); + try (final XmlStreamReader xmlReader = new XmlStreamReader(new StringInputStream(xml, encoding))) { + assertEquals(xmlReader.getEncoding(), encoding, "Check encoding"); + assertEquals(xml, IOUtils.toString(xmlReader), "Check content"); + } } @Test public void testHttpContent() throws Exception { final String encoding = "UTF-8"; final String xml = getXML("no-bom", XML3, encoding, encoding); - final ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes(encoding)); - final XmlStreamReader xmlReader = new XmlStreamReader(is, encoding); - assertEquals(xmlReader.getEncoding(), encoding, "Check encoding"); - assertEquals(xml, IOUtils.toString(xmlReader), "Check content"); + try (final XmlStreamReader xmlReader = new XmlStreamReader(new StringInputStream(xml, encoding))) { + assertEquals(xmlReader.getEncoding(), encoding, "Check encoding"); + assertEquals(xml, IOUtils.toString(xmlReader), "Check content"); + } } public void testAlternateDefaultEncoding(final String cT, final String bomEnc, diff --git a/src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java b/src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java index 8c6de90..b0783b5 100644 --- a/src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java +++ b/src/test/java/org/apache/commons/io/input/XmlStreamReaderUtilitiesTest.java @@ -21,7 +21,6 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; -import java.io.ByteArrayInputStream; import java.io.IOException; import org.junit.jupiter.api.Test; @@ -324,7 +323,7 @@ public class XmlStreamReaderUtilitiesTest { /** Mock {@link XmlStreamReader} implementation */ private static class MockXmlStreamReader extends XmlStreamReader { MockXmlStreamReader(final String defaultEncoding) throws IOException { - super(new ByteArrayInputStream("".getBytes()), null, true, defaultEncoding); + super(new StringInputStream(), null, true, defaultEncoding); } } } diff --git a/src/test/java/org/apache/commons/io/input/buffer/CircularBufferInputStreamTest.java b/src/test/java/org/apache/commons/io/input/buffer/CircularBufferInputStreamTest.java index c713ec0..fa27591 100644 --- a/src/test/java/org/apache/commons/io/input/buffer/CircularBufferInputStreamTest.java +++ b/src/test/java/org/apache/commons/io/input/buffer/CircularBufferInputStreamTest.java @@ -79,20 +79,17 @@ public class CircularBufferInputStreamTest { @Test public void testIO683() throws IOException { - final byte[] buffer = {0,1,-2,-2,-1,4}; - try ( - final ByteArrayInputStream bais = new ByteArrayInputStream(buffer); - final CircularBufferInputStream cbis = new CircularBufferInputStream(bais) - ){ - int b; - int i = 0; - while((b = cbis.read()) != -1) { - assertEquals(buffer[i] & 0xFF,b, "byte at index " + i + " should be equal"); - i++; - } - assertEquals(buffer.length, i, "Should have read all the bytes"); - } - } + final byte[] buffer = {0, 1, -2, -2, -1, 4}; + try (final ByteArrayInputStream bais = new ByteArrayInputStream(buffer); final CircularBufferInputStream cbis = new CircularBufferInputStream(bais)) { + int b; + int i = 0; + while ((b = cbis.read()) != -1) { + assertEquals(buffer[i] & 0xFF, b, "byte at index " + i + " should be equal"); + i++; + } + assertEquals(buffer.length, i, "Should have read all the bytes"); + } + } /** * Create a large, but random input buffer. diff --git a/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java b/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java index b107107..cc1bc14 100644 --- a/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java +++ b/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReaderUtilitiesCompatibilityTest.java @@ -16,9 +16,9 @@ */ package org.apache.commons.io.input.compatibility; -import java.io.ByteArrayInputStream; import java.io.IOException; +import org.apache.commons.io.input.StringInputStream; import org.apache.commons.io.input.XmlStreamReaderUtilitiesTest; /** @@ -47,7 +47,7 @@ public class XmlStreamReaderUtilitiesCompatibilityTest extends XmlStreamReaderUt /** Mock {@link XmlStreamReader} implementation */ private static class MockXmlStreamReader extends XmlStreamReader { MockXmlStreamReader(final String defaultEncoding) throws IOException { - super(new ByteArrayInputStream("".getBytes()), null, true, defaultEncoding); + super(new StringInputStream(), null, true, defaultEncoding); } } }