You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/02/19 23:05:13 UTC
svn commit: r746020 - in /cxf/trunk/rt/core/src:
main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java
test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java
Author: dkulp
Date: Thu Feb 19 22:05:12 2009
New Revision: 746020
URL: http://svn.apache.org/viewvc?rev=746020&view=rev
Log:
[CXF-2050] Fix issue of not detecting ends of mime streams correctly
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java
cxf/trunk/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java?rev=746020&r1=746019&r2=746020&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/attachment/MimeBodyPartInputStream.java Thu Feb 19 22:05:12 2009
@@ -142,7 +142,8 @@
if (initialI != off) {
i = 1000000000;
}
- if (!hasData(buffer, initialI, i + 1, off, len)) {
+ if (initialI - off != 0
+ && !hasData(buffer, initialI, i + 1, off, len)) {
return initialI - off;
}
boundaryFound = true;
Modified: cxf/trunk/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java?rev=746020&r1=746019&r2=746020&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java (original)
+++ cxf/trunk/rt/core/src/test/java/org/apache/cxf/attachment/AttachmentDeserializerTest.java Thu Feb 19 22:05:12 2009
@@ -22,6 +22,7 @@
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
+import java.io.PushbackInputStream;
import java.util.Collection;
import java.util.Iterator;
@@ -277,4 +278,23 @@
assertTrue(((DelegatingInputStream) attBody).getInputStream() instanceof FileInputStream);
}
+
+
+ @Test
+ public void testSmallStream() throws Exception {
+ byte[] messageBytes = ("------=_Part_1\n\nJJJJ\n------=_Part_1\n\n"
+ + "Content-Transfer-Encoding: binary\n\n=3D=3D=3D\n------=_Part_1\n").getBytes();
+ PushbackInputStream pushbackStream = new PushbackInputStream(new ByteArrayInputStream(messageBytes),
+ 2048);
+ pushbackStream.read(new byte[4096], 0, 4015);
+ pushbackStream.unread(messageBytes);
+ pushbackStream.read(new byte[72]);
+
+ MimeBodyPartInputStream m = new MimeBodyPartInputStream(pushbackStream, "------=_Part_1".getBytes(),
+ 2048);
+
+ assertEquals(10, m.read(new byte[1000]));
+ assertEquals(-1, m.read(new byte[1000]));
+ assertEquals(-1, m.read(new byte[1000]));
+ }
}
\ No newline at end of file