You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mime4j-dev@james.apache.org by ol...@apache.org on 2014/06/27 14:29:23 UTC
svn commit: r1606057 - in /james/mime4j/trunk/core/src:
main/java/org/apache/james/mime4j/io/TextInputStream.java
test/java/org/apache/james/mime4j/io/TextInputStreamTest.java
Author: olegk
Date: Fri Jun 27 12:29:23 2014
New Revision: 1606057
URL: http://svn.apache.org/r1606057
Log:
MIME4J-241: inconsistent StringInputStream read zero behavior
Modified:
james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/io/TextInputStream.java
james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/io/TextInputStreamTest.java
Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/io/TextInputStream.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/io/TextInputStream.java?rev=1606057&r1=1606056&r2=1606057&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/io/TextInputStream.java (original)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/io/TextInputStream.java Fri Jun 27 12:29:23 2014
@@ -67,9 +67,6 @@ class TextInputStream extends InputStrea
if (off < 0 || len < 0 || off + len > b.length) {
throw new IndexOutOfBoundsException();
}
- if (len == 0) {
- return 0;
- }
if (!this.bbuf.hasRemaining() && !this.cbuf.hasRemaining()) {
return -1;
}
@@ -88,7 +85,15 @@ class TextInputStream extends InputStrea
}
}
}
- return bytesRead == 0 && !this.cbuf.hasRemaining() ? -1 : bytesRead;
+ if (bytesRead > 0) {
+ return bytesRead;
+ } else {
+ if (!this.bbuf.hasRemaining() && !this.cbuf.hasRemaining()) {
+ return -1;
+ } else {
+ return bytesRead;
+ }
+ }
}
@Override
Modified: james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/io/TextInputStreamTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/io/TextInputStreamTest.java?rev=1606057&r1=1606056&r2=1606057&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/io/TextInputStreamTest.java (original)
+++ james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/io/TextInputStreamTest.java Fri Jun 27 12:29:23 2014
@@ -115,6 +115,18 @@ public class TextInputStreamTest {
}
@Test
+ public void testReadZero2() throws Exception {
+ InputStream r = new TextInputStream("test", Charsets.US_ASCII, 1024);
+ byte[] bytes = new byte[30];
+ assertEquals(2, r.read(bytes, 0, 2));
+ assertEquals(0, r.read(bytes, 2, 0));
+ assertEquals(0, r.read(bytes, 2, 0));
+ assertEquals(2, r.read(bytes, 2, 2));
+ assertEquals(-1, r.read(bytes, 4, 0));
+ assertEquals(-1, r.read(bytes, 4, 2));
+ }
+
+ @Test
public void testSkip() throws Exception {
InputStream r = new TextInputStream("test", Charsets.UTF_8, 1024);
r.skip(1);