You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2012/03/13 18:29:40 UTC
svn commit: r1300249 - in /commons/proper/io/trunk/src: changes/changes.xml
main/java/org/apache/commons/io/input/ReaderInputStream.java
test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
Author: sebb
Date: Tue Mar 13 17:29:39 2012
New Revision: 1300249
URL: http://svn.apache.org/viewvc?rev=1300249&view=rev
Log:
IO-306 ReaderInputStream#read(byte[] b, int off, int len) should always return 0 for length == 0
Modified:
commons/proper/io/trunk/src/changes/changes.xml
commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/ReaderInputStream.java
commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
Modified: commons/proper/io/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/changes/changes.xml?rev=1300249&r1=1300248&r2=1300249&view=diff
==============================================================================
--- commons/proper/io/trunk/src/changes/changes.xml (original)
+++ commons/proper/io/trunk/src/changes/changes.xml Tue Mar 13 17:29:39 2012
@@ -40,6 +40,9 @@ The <action> type attribute can be add,u
<body>
<release version="2.2" date="TBA">
+ <action dev="sebb" type="fix" issue="IO-306">
+ ReaderInputStream#read(byte[] b, int off, int len) should always return 0 for length == 0
+ </action>
<action dev="sebb" type="add" issue="IO-173" due-to="Marcos VinÃcius da Silva">
FileUtils.listFiles() doesn't return directories
</action>
Modified: commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/ReaderInputStream.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/ReaderInputStream.java?rev=1300249&r1=1300248&r2=1300249&view=diff
==============================================================================
--- commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/ReaderInputStream.java (original)
+++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/input/ReaderInputStream.java Tue Mar 13 17:29:39 2012
@@ -221,6 +221,9 @@ public class ReaderInputStream extends I
@Override
public int read(byte[] b, int off, int len) throws IOException {
int read = 0;
+ if (len == 0) {
+ return 0; // Always return 0 if len == 0
+ }
while (len > 0) {
if (encoderOut.hasRemaining()) {
int c = Math.min(encoderOut.remaining(), len);
Modified: commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java?rev=1300249&r1=1300248&r2=1300249&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java (original)
+++ commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/ReaderInputStreamTest.java Tue Mar 13 17:29:39 2012
@@ -105,9 +105,24 @@ public class ReaderInputStreamTest {
@Test
public void testReadZero() throws Exception {
- ReaderInputStream r = new ReaderInputStream(new StringReader("test"));
+ final String inStr = "test";
+ ReaderInputStream r = new ReaderInputStream(new StringReader(inStr));
byte[] bytes = new byte[30];
assertEquals(0, r.read(bytes, 0, 0));
+ assertEquals(inStr.length(), r.read(bytes, 0, inStr.length()+1));
+ // Should always return 0 for length == 0
+ assertEquals(0, r.read(bytes, 0, 0));
+ }
+
+ @Test
+ public void testReadZeroEmptyString() throws Exception {
+ ReaderInputStream r = new ReaderInputStream(new StringReader(""));
+ byte[] bytes = new byte[30];
+ // Should always return 0 for length == 0
+ assertEquals(0, r.read(bytes, 0, 0));
+ assertEquals(-1, r.read(bytes, 0, 1));
+ assertEquals(0, r.read(bytes, 0, 0));
+ assertEquals(-1, r.read(bytes, 0, 1));
}
/**