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 no...@apache.org on 2011/06/26 18:41:52 UTC

svn commit: r1139832 - /james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java

Author: norman
Date: Sun Jun 26 16:41:52 2011
New Revision: 1139832

URL: http://svn.apache.org/viewvc?rev=1139832&view=rev
Log:
Make sure we can process headers of any length

Modified:
    james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java

Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java?rev=1139832&r1=1139831&r2=1139832&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java Sun Jun 26 16:41:52 2011
@@ -41,7 +41,10 @@ import org.apache.james.mailbox.store.st
 import org.apache.james.mailbox.store.streaming.InputStreamContent.Type;
 import org.apache.james.mailbox.store.streaming.PartContentBuilder;
 import org.apache.james.mime4j.MimeException;
+import org.apache.james.mime4j.parser.AbstractContentHandler;
 import org.apache.james.mime4j.parser.Field;
+import org.apache.james.mime4j.parser.MimeEntityConfig;
+import org.apache.james.mime4j.parser.MimeStreamParser;
 
 /**
  *
@@ -55,22 +58,29 @@ public class ResultUtils {
     static final Charset US_ASCII = Charset.forName("US-ASCII");
 
     public static List<MessageResult.Header> createHeaders(final Message<?> document) throws IOException {
-        org.apache.james.mime4j.message.Header header = new org.apache.james.mime4j.message.Header(document.getHeaderContent());
-        
         final List<MessageResult.Header> results = new ArrayList<MessageResult.Header>();
-        List<Field> fields = header.getFields();
-        for (Field field: fields) {
-            String fieldValue = field.getBody();
-            if (fieldValue.endsWith("\r\f")) {
-                fieldValue = fieldValue.substring(0,fieldValue.length() - 2);
+        MimeEntityConfig config = new MimeEntityConfig();
+        config.setMaxLineLen(-1);
+        final MimeStreamParser parser = new MimeStreamParser(config);
+        parser.setContentHandler(new AbstractContentHandler() {
+            @Override
+            public void endHeader() {
+                parser.stop();
             }
-            if (fieldValue.startsWith(" ")) {
-                fieldValue = fieldValue.substring(1);
+            @Override
+            public void field(Field field) throws MimeException {
+                String fieldValue = field.getBody();
+                if (fieldValue.endsWith("\r\f")) {
+                    fieldValue = fieldValue.substring(0,fieldValue.length() - 2);
+                }
+                if (fieldValue.startsWith(" ")) {
+                    fieldValue = fieldValue.substring(1);
+                }
+                
+                final ResultHeader resultHeader = new ResultHeader(field.getName(), fieldValue);
+                results.add(resultHeader);
             }
-            
-            final ResultHeader resultHeader = new ResultHeader(field.getName(), fieldValue);
-            results.add(resultHeader);
-        }
+        });
         return results;
     }
 



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