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:19:50 UTC

svn commit: r1606050 - in /james/mime4j/branches/apache-mime4j-0.7: core/src/main/java/org/apache/james/mime4j/stream/ core/src/test/java/org/apache/james/mime4j/stream/ dom/src/main/java/org/apache/james/mime4j/message/ dom/src/test/java/org/apache/ja...

Author: olegk
Date: Fri Jun 27 12:19:50 2014
New Revision: 1606050

URL: http://svn.apache.org/r1606050
Log:
MIME4J-241: inconsistent StringInputStream read zero behavior

Modified:
    james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/stream/RawFieldParser.java   (contents, props changed)
    james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/stream/RawFieldParserTest.java   (contents, props changed)
    james/mime4j/branches/apache-mime4j-0.7/dom/src/main/java/org/apache/james/mime4j/message/StringInputStream.java
    james/mime4j/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/field/address/LenientAddressBuilderTest.java   (contents, props changed)
    james/mime4j/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/message/StringInputStreamTest.java

Modified: james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/stream/RawFieldParser.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/stream/RawFieldParser.java?rev=1606050&r1=1606049&r2=1606050&view=diff
==============================================================================
    (empty)

Propchange: james/mime4j/branches/apache-mime4j-0.7/core/src/main/java/org/apache/james/mime4j/stream/RawFieldParser.java
            ('svn:executable' removed)

Modified: james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/stream/RawFieldParserTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/stream/RawFieldParserTest.java?rev=1606050&r1=1606049&r2=1606050&view=diff
==============================================================================
    (empty)

Propchange: james/mime4j/branches/apache-mime4j-0.7/core/src/test/java/org/apache/james/mime4j/stream/RawFieldParserTest.java
            ('svn:executable' removed)

Modified: james/mime4j/branches/apache-mime4j-0.7/dom/src/main/java/org/apache/james/mime4j/message/StringInputStream.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/apache-mime4j-0.7/dom/src/main/java/org/apache/james/mime4j/message/StringInputStream.java?rev=1606050&r1=1606049&r2=1606050&view=diff
==============================================================================
--- james/mime4j/branches/apache-mime4j-0.7/dom/src/main/java/org/apache/james/mime4j/message/StringInputStream.java (original)
+++ james/mime4j/branches/apache-mime4j-0.7/dom/src/main/java/org/apache/james/mime4j/message/StringInputStream.java Fri Jun 27 12:19:50 2014
@@ -87,7 +87,15 @@ class StringInputStream extends InputStr
                 }
             }
         }
-        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/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/field/address/LenientAddressBuilderTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/field/address/LenientAddressBuilderTest.java?rev=1606050&r1=1606049&r2=1606050&view=diff
==============================================================================
    (empty)

Propchange: james/mime4j/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/field/address/LenientAddressBuilderTest.java
            ('svn:executable' removed)

Modified: james/mime4j/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/message/StringInputStreamTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/message/StringInputStreamTest.java?rev=1606050&r1=1606049&r2=1606050&view=diff
==============================================================================
--- james/mime4j/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/message/StringInputStreamTest.java (original)
+++ james/mime4j/branches/apache-mime4j-0.7/dom/src/test/java/org/apache/james/mime4j/message/StringInputStreamTest.java Fri Jun 27 12:19:50 2014
@@ -102,6 +102,17 @@ public class StringInputStreamTest exten
         assertEquals(0, r.read(bytes, 0, 0));
     }
 
+    public void testReadZero2() throws Exception {
+        InputStream r = new StringInputStream("test", CharsetUtil.UTF_8);
+        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));
+    }
+
     public void testSkip() throws Exception {
         InputStream r = new StringInputStream("test", CharsetUtil.UTF_8);
         r.skip(1);