You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2008/07/15 11:11:24 UTC

svn commit: r676840 - in /james/mime4j/branches/streams-refactoring/src: main/java/org/apache/james/mime4j/MimeEntity.java test/resources/testmsgs/missing-inner-boundary.xml test/resources/testmsgs/missing-inner-boundary_decoded.xml

Author: bago
Date: Tue Jul 15 02:11:23 2008
New Revision: 676840

URL: http://svn.apache.org/viewvc?rev=676840&view=rev
Log:
Make sure outer boundaries are always recognized when parsing nested content (MIME4J-56)
This introduce double bufferings but at least provide RFC compliant behaviour.
Also updated "missing-inner-boundary.msg" expected output to what Niklas suggested (corresponding to what RFC mandates).

Modified:
    james/mime4j/branches/streams-refactoring/src/main/java/org/apache/james/mime4j/MimeEntity.java
    james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary.xml
    james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary_decoded.xml

Modified: james/mime4j/branches/streams-refactoring/src/main/java/org/apache/james/mime4j/MimeEntity.java
URL: http://svn.apache.org/viewvc/james/mime4j/branches/streams-refactoring/src/main/java/org/apache/james/mime4j/MimeEntity.java?rev=676840&r1=676839&r2=676840&view=diff
==============================================================================
--- james/mime4j/branches/streams-refactoring/src/main/java/org/apache/james/mime4j/MimeEntity.java (original)
+++ james/mime4j/branches/streams-refactoring/src/main/java/org/apache/james/mime4j/MimeEntity.java Tue Jul 15 02:11:23 2008
@@ -122,6 +122,7 @@
                 clearMimeStream();
                 state = EntityStates.T_END_MULTIPART;
             } else {
+                clearMimeStream();
                 createMimeStream();
                 state = T_IN_BODYPART;
                 return nextMimeEntity();
@@ -133,6 +134,7 @@
                 monitor(Event.MIME_BODY_PREMATURE_END);
             } else {
                 if (!mimeStream.isLastPart()) {
+                    clearMimeStream();
                     createMimeStream();
                     state = T_IN_BODYPART;
                     return nextMimeEntity();
@@ -160,7 +162,11 @@
     }
 
     private void createMimeStream() throws IOException {
-        mimeStream = new MimeBoundaryInputStream(inbuffer, body.getBoundary());
+        if (mimeStream != null) {
+            mimeStream = new MimeBoundaryInputStream(new InputBuffer(mimeStream, 4 * 1024), body.getBoundary());
+        } else {
+            mimeStream = new MimeBoundaryInputStream(inbuffer, body.getBoundary());
+        }
         dataStream = new BufferingInputStreamAdaptor(mimeStream); 
         // If multipart message is embedded into another multipart message
         // make sure to reset parent's mime stream

Modified: james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary.xml
URL: http://svn.apache.org/viewvc/james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary.xml?rev=676840&r1=676839&r2=676840&view=diff
==============================================================================
--- james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary.xml (original)
+++ james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary.xml Tue Jul 15 02:11:23 2008
@@ -24,9 +24,6 @@
 <multipart>
 <preamble>
 AAA
-
---outer-boundary--
-Outer epilouge
 </preamble>
 <body-part>
 <header>
@@ -39,6 +36,7 @@
 </multipart>
 </body-part>
 <epilogue>
+Outer epilouge
 </epilogue>
 </multipart>
 </message>

Modified: james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary_decoded.xml
URL: http://svn.apache.org/viewvc/james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary_decoded.xml?rev=676840&r1=676839&r2=676840&view=diff
==============================================================================
--- james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary_decoded.xml (original)
+++ james/mime4j/branches/streams-refactoring/src/test/resources/testmsgs/missing-inner-boundary_decoded.xml Tue Jul 15 02:11:23 2008
@@ -22,9 +22,6 @@
 <multipart>
 <preamble>
 AAA
-
---outer-boundary--
-Outer epilouge
 </preamble>
 <body-part>
 <header>
@@ -36,6 +33,7 @@
 </multipart>
 </body-part>
 <epilogue>
+Outer epilouge
 </epilogue>
 </multipart>
 </message>



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org